public static function create($name, $type = NULL, $defaultValue = self::UNDEFINED, $modifiers = self::MODIFIER_PROTECTED) {
    if (isset($type)) {
      if ($type instanceof GClass) {
        $type = new ObjectType(new GClass($type->getFQN()));
      } elseif (!($type instanceof Type)) {
        $type = Type::create($type);
      }
    }
    
    return new static($name, $type, $defaultValue, $modifiers);
  }
public static function create($name, $type = NULL, $defaultValue = self::UNDEFINED, $modifiers = self::MODIFIER_PROTECTED) {
    if (isset($type)) {
      if ($type instanceof GClass) {
        $type = new ObjectType(new GClass($type->getFQN()));
      } elseif (!($type instanceof Type)) {
        $type = Type::create($type);
      }
    }
    
    return new static($name, $type, $defaultValue, $modifiers);
  }
public static function create ( $ name , $ type = NULL , $ defaultValue = self :: UNDEFINED , $ modifiers = self :: MODIFIER_PROTECTED ) { if ( isset ( $ type ) ) { if ( $ type instanceof GClass ) { $ type = new ObjectType ( new GClass ( $ type -> getFQN ( ) ) ) ; } elseif ( ! ( $ type instanceof Type ) ) { $ type = Type :: create ( $ type ) ; } } return new static ( $ name , $ type , $ defaultValue , $ modifiers ) ; }
Creates a new GProperty

for your convenience, you can use GClass as $type. It will then be converted to the Object<GClass->getFQN()>-Type
Creates a new GProperty