Class GosuClassTypeLoader

    • Field Detail

      • GOSU_CLASS_FILE_EXT

        public static final java.lang.String GOSU_CLASS_FILE_EXT
        See Also:
        Constant Field Values
      • GOSU_ENHANCEMENT_FILE_EXT

        public static final java.lang.String GOSU_ENHANCEMENT_FILE_EXT
        See Also:
        Constant Field Values
      • GOSU_PROGRAM_FILE_EXT

        public static final java.lang.String GOSU_PROGRAM_FILE_EXT
        See Also:
        Constant Field Values
      • GOSU_TEMPLATE_FILE_EXT

        public static final java.lang.String GOSU_TEMPLATE_FILE_EXT
        See Also:
        Constant Field Values
      • GOSU_RULE_SET_EXT

        public static final java.lang.String GOSU_RULE_SET_EXT
        See Also:
        Constant Field Values
      • ALL_EXTS

        public static final java.lang.String[] ALL_EXTS
      • ALL_EXTS_SET

        public static final java.util.Set<java.lang.String> ALL_EXTS_SET
      • EXTENSIONS

        public static final java.util.Set<java.lang.String> EXTENSIONS
      • INNER_BLOCK_PREFIX

        public static final java.lang.String INNER_BLOCK_PREFIX
        See Also:
        Constant Field Values
      • _namespaces

        protected java.util.Set<java.lang.String> _namespaces
    • Method Detail

      • makeEnhancementIndex

        private void makeEnhancementIndex()
      • getType

        public ICompilableType getType​(java.lang.String strFullyQualifiedName)
        Description copied from interface: ITypeLoader
        Gets a type based on a fully-qualified name. This could either be the name of an entity, like "entity.User", the name of a typekey, like "typekey.SystemPermission", or a class name, like "java.lang.String". Names can have [] appended to them to create arrays, and multi-dimensional arrays are supported.

        If the type can be successfully resolved by the typeloader, it will be returned, otherwise it will return null. The sole exception to this rule is the top-level TypeLoaderAccess, which will throw a ClassNotFoundException if none of its composite typeloaders can load the type.

        There is a global lock in TypeLoaderAccess that is acquired when this method is called. Basically one type at a time can be loaded from the system. This method is free to release that lock during this call. This is needed to deal with reentrant type loaders. It is the responsibility of this method to make sure the lock is reacquired before this method returns.

        Type loader access will guarentee that no duplicate types are put into the type loader.

        Parameters:
        strFullyQualifiedName - the fully qualified name of the type
        Returns:
        the corresponding IType or null
      • getAdapterClass

        private IGosuClass getAdapterClass​(java.lang.String strFullyQualifiedName)
      • getAllNamespaces

        public java.util.Set<java.lang.String> getAllNamespaces()
        Description copied from interface: ITypeLoader
        Don't call this method unless you really know what you're doing.
        Returns:
        the set of package (aka namespace) names in which this loader's types reside.
      • refreshedNamespace

        public void refreshedNamespace​(java.lang.String namespace,
                                       IDirectory dir,
                                       RefreshKind kind)
      • getResource

        public java.net.URL getResource​(java.lang.String name)
        Description copied from interface: ITypeLoader
        Finds the resource with the given name. A resource is some data that can be accessed by class code in a way that may be independent of the location of the code. The exact location of the resource is dependent upon the loader implementation

        The name of a resource is a '/'-separated path name that identifies the resource.

        Specified by:
        getResource in interface ITypeLoader
        Overrides:
        getResource in class TypeLoaderBase
        Parameters:
        name - The resource name
        Returns:
        A URL object for reading the resource, or null if the resource could not be found or the invoker doesn't have adequate privileges to get the resource.
      • computeTypeNames

        public java.util.Set<java.lang.String> computeTypeNames()
      • getHandledPrefixes

        public java.util.List<java.lang.String> getHandledPrefixes()
      • handlesNonPrefixLoads

        public boolean handlesNonPrefixLoads()
      • getBlockType

        private IGosuClass getBlockType​(java.lang.String strName)
      • isBlock

        private boolean isBlock​(java.lang.String strName)
      • findClass

        private IGosuClass findClass​(java.lang.String strQualifiedClassName)
      • isValidSourceFileHandle

        protected boolean isValidSourceFileHandle​(ISourceFileHandle sourceFile)
      • getAllExtensions

        protected java.lang.String[] getAllExtensions()
      • shouldKeepDebugInfo

        public boolean shouldKeepDebugInfo​(IGosuClass gsClass)
      • hasNamespace

        public boolean hasNamespace​(java.lang.String namespace)