Class GosuClassTypeInfo

    • Method Detail

      • pushIncludeAll

        public static void pushIncludeAll()
      • popIncludeAll

        public static void popIncludeAll()
      • isIncludeAll

        public static boolean isIncludeAll()
      • forceInit

        public void forceInit()
      • getDeclaredMethods

        public java.util.List<? extends IMethodInfo> getDeclaredMethods()
        Description copied from interface: IRelativeTypeInfo
        Returns a list of IMethodInfo objects reflecting all the methods declared by the class or interface represented by this IType object. This includes public, protected, internal access, and private methods, but excludes inherited methods. The elements in the list are ordered by declaration order in the file. This method returns an empty list if the type does not contain any methods
        Specified by:
        getDeclaredMethods in interface IRelativeTypeInfo
        Returns:
        the list of IMethodInfo objects representing all the declared methods of this class
      • getDeclaredProperties

        public java.util.List<? extends IPropertyInfo> getDeclaredProperties()
        Description copied from interface: IRelativeTypeInfo
        Returns a list of IPropertyInfo objects reflecting all the properties declared by the class or interface represented by this IType object. This includes public, protected, internal access, and private properties, but excludes inherited properties. The elements in the list are ordered by declaration order in the file. This method returns an empty list if the type does not contain any properties
        Specified by:
        getDeclaredProperties in interface IRelativeTypeInfo
        Returns:
        the list of IPropertyInfo objects representing all the declared properties of this class
      • getDeclaredConstructors

        public java.util.List<? extends IConstructorInfo> getDeclaredConstructors()
        Description copied from interface: IRelativeTypeInfo
        Returns a list of IConstructorInfo objects reflecting all the constructors declared by the class represented by this IType object. This includes public, protected, internal access, and private constructors. Interfaces and arrays always return an empty list. The elements in the list are ordered by declaration order in the file. This method returns an empty list if the type does not contain any methods
        Specified by:
        getDeclaredConstructors in interface IRelativeTypeInfo
        Returns:
        the list of IConstructorInfo objects representing all the declared methods of this class
      • getName

        public java.lang.String getName()
        Description copied from interface: IFeatureInfo
        Gets the programmatic name or identifier of this feature. Note this name should follow Java identifier naming conventions (alpha-num and underscores, but can't start with a digit).
        Specified by:
        getName in interface IFeatureInfo
        Overrides:
        getName in class BaseTypeInfo
      • getProperties

        public java.util.List<? extends IPropertyInfo> getProperties()
        Specified by:
        getProperties in interface ITypeInfo
        Overrides:
        getProperties in class BaseTypeInfo
        Returns:
        An unmodifiable random access list of IPropertyInfo instances. The list is sorted ascending by name. Returns an empty list if there are no properties.
      • getProperty

        public IPropertyInfo getProperty​(java.lang.CharSequence propName)
        Description copied from interface: ITypeInfo
        Get a property mapped to the specified name.
        Specified by:
        getProperty in interface ITypeInfo
        Overrides:
        getProperty in class BaseTypeInfo
        Parameters:
        propName - The property name.
        Returns:
        An IPropertyInfo corresponding to the property name.
      • getMethods

        public MethodList getMethods()
        Specified by:
        getMethods in interface ITypeInfo
        Overrides:
        getMethods in class BaseTypeInfo
        Returns:
        An unmodifiable random access list of IMethodInfo instances. The list is sorted ascending by name. Returns an empty list if there are no methods.
      • getConstructors

        public java.util.List<GosuConstructorInfo> getConstructors()
        Specified by:
        getConstructors in interface ITypeInfo
        Overrides:
        getConstructors in class BaseTypeInfo
        Returns:
        An unmodifiable random access list of IConstructorInfo instances. The list is sorted ascending by name. Returns an empty list if there are no constructors.
      • getMethod

        public IMethodInfo getMethod​(java.lang.CharSequence methodName,
                                     IType... params)
        Description copied from interface: ITypeInfo
        Returns a IMethodInfo matching the specified name and parameter types or null if no match is found.

        Note params must exactly match those of the target method in number, order, and type. If null, params is treated as an empty array.

        Specified by:
        getMethod in interface ITypeInfo
        Overrides:
        getMethod in class BaseTypeInfo
        Parameters:
        methodName - The name of the method to find.
        params - Represents the exact number, order, and type of parameters in the method. A null value here is treated as an empty array.
        Returns:
        A IMethodInfo matching the name and parameter types.
      • getConstructor

        public IConstructorInfo getConstructor​(IType... params)
        Description copied from interface: ITypeInfo
        Returns a IConstructorInfo that has parameter types that produce the best match.

        If there is a tie with method names then this will throw an illegal argument exception.

        Specified by:
        getConstructor in interface ITypeInfo
        Overrides:
        getConstructor in class BaseTypeInfo
        Parameters:
        params - Represents the exact number, order, and type of parameters in the constructor. A null value here is treated as an empty array.
        Returns:
        A IConstructorInfo matching the parameter types.
      • getCallableMethod

        public IMethodInfo getCallableMethod​(java.lang.CharSequence strMethod,
                                             IType... params)
        Description copied from interface: ITypeInfo
        Returns a IMethodInfo matching the specified name and has parameter types that produce the best match.

        If there is a tie with method names then this will throw an illegal argument exception.

        Specified by:
        getCallableMethod in interface ITypeInfo
        Overrides:
        getCallableMethod in class BaseTypeInfo
        Parameters:
        strMethod - The name of the method to find.
        params - Represents the exact number, order, and type of parameters in the method. A null value here is treated as an empty array.
        Returns:
        A IMethodInfo matching the name and parameter types.
      • getCallableConstructor

        public IConstructorInfo getCallableConstructor​(IType... params)
        Description copied from interface: ITypeInfo
        Returns a IConstructorInfo matching the specified parameter types or null if no match is found.
        Specified by:
        getCallableConstructor in interface ITypeInfo
        Overrides:
        getCallableConstructor in class BaseTypeInfo
        Parameters:
        params - Represents the exact number, order, and type of parameters in the constructor. A null value here is treated as an empty array.
        Returns:
        A IConstructorInfo matching the parameter types.
      • getEvents

        public java.util.List<IEventInfo> getEvents()
        Specified by:
        getEvents in interface ITypeInfo
        Overrides:
        getEvents in class BaseTypeInfo
        Returns:
        An unmodifiable random access list of IEventInfo instances. The list is sorted ascending by name. Returns an empty list if ther are no events.
      • getEvent

        public IEventInfo getEvent​(java.lang.CharSequence strEvent)
        Description copied from interface: ITypeInfo
        Get an event mapped to the specified name.
        Specified by:
        getEvent in interface ITypeInfo
        Overrides:
        getEvent in class BaseTypeInfo
        Parameters:
        strEvent - The event name.
        Returns:
        An IEventInfo corresponding to the event name.
      • getCompilingClass

        private IType getCompilingClass()
        We expose type info in a context sensitive manner. For instance, we only expose private features from within the containing class. We can determine the context class from the current compiling class. The compiling class is obtained from either 1) the actual CompiledGosuClass stack the Gosu Class TypeLoader manages or 2) from the class itself if it's not compiled yet. Note the latter case happens only on the UI side when a class is being edited.
      • extractProperties

        private void extractProperties()
      • makePropertiesFromGenericTypesFields

        private void makePropertiesFromGenericTypesFields​(java.util.List<IPropertyInfo> declaredPropertiesMap)
      • makePropertiesFromFields

        private void makePropertiesFromFields​(java.util.List<IPropertyInfo> declaredPropertiesMap,
                                              java.util.Collection<IVarStatement> fields)
      • addDefinedProperties

        private void addDefinedProperties​(java.util.List<IPropertyInfo> declaredPropertiesMap,
                                          java.util.List<DynamicPropertySymbol> propertySymbols)
      • extractMethods

        private void extractMethods()
      • createMethodInfos

        private java.util.List<IGosuMethodInfo> createMethodInfos​(java.util.List mapFunctions)
      • extractConstructors

        private void extractConstructors()
      • makeStandardAnnotationConstructor

        private IConstructorInfo makeStandardAnnotationConstructor()
      • createConstructorInfos

        private java.util.List createConstructorInfos​(java.util.List<DynamicFunctionSymbol> functions)
      • unload

        public void unload()