Package gw.internal.gosu.parser
Class ModuleTypeLoader
- java.lang.Object
-
- gw.internal.gosu.parser.ModuleTypeLoader
-
- All Implemented Interfaces:
ITypeLoaderStackInternal,ITypeLoaderStack
public class ModuleTypeLoader extends java.lang.Object implements ITypeLoaderStackInternal
-
-
Field Summary
Fields Modifier and Type Field Description private DefaultTypeLoader_defaultTypeLoaderprivate java.util.List<ITypeLoader>_globalStackprivate java.util.Map<java.lang.String,ITypeLoader>_loadersByPrefixprivate IModule_moduleprivate java.util.Map<java.lang.String,IType>_namespaceTypesByNameprivate ITypeRefFactory_typeRefFactoryprivate java.util.Map<java.lang.String,IType>_typesByCaseInsensitiveNameprivate WeakFqnCache<IType>_typesByNameprivate static ITypeCACHE_MISS
-
Constructor Summary
Constructors Constructor Description ModuleTypeLoader(IModule module, DefaultTypeLoader defaultTypeLoader)ModuleTypeLoader(IModule module, java.util.List<ITypeLoader> loaderStack)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private ITypecacheNamespace(java.lang.String name, IType type)private ITypecacheType(java.lang.String name, Pair<IType,ITypeLoader> pair)Adds the type to the cache.private voidclearCaches()voidclearErrorTypes()voidclearFromCaches(RefreshRequest request)private voidclearFromCaches(java.lang.String fullyQualifiedTypeName)private voidclearNamespaces(RefreshRequest request)private ITypefindInCache(java.lang.String fqnNoArrays)private ITypefindInCaseInsenstiveCache(java.lang.String fqnNoArrays)ITypegetCachedType(java.lang.String fqn)DefaultTypeLoadergetDefaultTypeLoader()ITypegetIntrinsicTypeFromObject(java.lang.Object object)IModulegetModule()INamespaceTypegetNamespaceType(java.lang.String strNamespace)ITypegetTypeByFullNameIfValid(java.lang.String fullyQualifiedName, boolean skipJava)<T extends ITypeLoader>
TgetTypeLoader(java.lang.Class<? extends T> loaderType)java.util.List<ITypeLoader>getTypeLoaders()java.util.List<ITypeLoader>getTypeLoaderStack()java.util.Set<TypeName>getTypeNames(java.lang.String namespace)ITypeRefFactorygetTypeRefFactory()private voidinitMaps()private booleanisProxyType(java.lang.String fullyQualifiedName, ITypeLoader loader)private booleanisValidNamespace(java.lang.String strNamespace)private ITypeloadNamespaceAndCacheResult(java.lang.String fullyQualifiedName)private ITypeloadNamespaceType(java.lang.String namespace)private Pair<IType,ITypeLoader>loadType(java.lang.String fullyQualifiedName, boolean skipJava)private ITypeloadTypeAndCacheResult(java.lang.String fullyQualifiedName, boolean skipJava)voidpushTypeLoader(ITypeLoader typeLoader)booleanrefresh(IResource file, java.lang.String typeName, RefreshKind refreshKind)private booleanrefreshDirectory(IDirectory directory, RefreshKind kind)voidrefreshed()private booleanrefreshFile(IFile file, java.lang.String typeName, RefreshKind kind)private voidrefreshNamespaceCaches(java.lang.String namespace, ITypeLoader typeLoader, RefreshKind kind)private voidremoveMissesAndErrors(java.util.Collection<IType> types)private voidremoveMissesAndErrorsFromMainCache()voidremoveTypeLoader(java.lang.Class<? extends ITypeLoader> loaderType)voidreset()voidshutdown()(package private) static java.lang.StringstripArrayBrackets(java.lang.String name)\java.lang.StringtoString()voiduninitializeTypeLoaders()
-
-
-
Field Detail
-
CACHE_MISS
private static final IType CACHE_MISS
-
_module
private IModule _module
-
_globalStack
private java.util.List<ITypeLoader> _globalStack
-
_defaultTypeLoader
private DefaultTypeLoader _defaultTypeLoader
-
_loadersByPrefix
private java.util.Map<java.lang.String,ITypeLoader> _loadersByPrefix
-
_typesByName
private WeakFqnCache<IType> _typesByName
-
_namespaceTypesByName
private java.util.Map<java.lang.String,IType> _namespaceTypesByName
-
_typesByCaseInsensitiveName
private java.util.Map<java.lang.String,IType> _typesByCaseInsensitiveName
-
_typeRefFactory
private ITypeRefFactory _typeRefFactory
-
-
Constructor Detail
-
ModuleTypeLoader
public ModuleTypeLoader(IModule module, java.util.List<ITypeLoader> loaderStack)
-
ModuleTypeLoader
public ModuleTypeLoader(IModule module, DefaultTypeLoader defaultTypeLoader)
-
-
Method Detail
-
initMaps
private void initMaps()
-
reset
public void reset()
-
getModule
public IModule getModule()
- Specified by:
getModulein interfaceITypeLoaderStack
-
getTypeLoaders
public java.util.List<ITypeLoader> getTypeLoaders()
- Specified by:
getTypeLoadersin interfaceITypeLoaderStackInternal
-
pushTypeLoader
public void pushTypeLoader(ITypeLoader typeLoader)
-
clearErrorTypes
public void clearErrorTypes()
- Specified by:
clearErrorTypesin interfaceITypeLoaderStackInternal
-
removeMissesAndErrorsFromMainCache
private void removeMissesAndErrorsFromMainCache()
-
removeMissesAndErrors
private void removeMissesAndErrors(java.util.Collection<IType> types)
-
clearCaches
private void clearCaches()
-
removeTypeLoader
public void removeTypeLoader(java.lang.Class<? extends ITypeLoader> loaderType)
-
clearFromCaches
public void clearFromCaches(RefreshRequest request)
- Specified by:
clearFromCachesin interfaceITypeLoaderStackInternal
-
clearNamespaces
private void clearNamespaces(RefreshRequest request)
-
getTypeNames
public java.util.Set<TypeName> getTypeNames(java.lang.String namespace)
- Specified by:
getTypeNamesin interfaceITypeLoaderStack
-
getTypeLoader
public <T extends ITypeLoader> T getTypeLoader(java.lang.Class<? extends T> loaderType)
- Specified by:
getTypeLoaderin interfaceITypeLoaderStack
-
getNamespaceType
public INamespaceType getNamespaceType(java.lang.String strNamespace)
- Specified by:
getNamespaceTypein interfaceITypeLoaderStackInternal
-
isValidNamespace
private boolean isValidNamespace(java.lang.String strNamespace)
-
getIntrinsicTypeFromObject
public IType getIntrinsicTypeFromObject(java.lang.Object object)
- Specified by:
getIntrinsicTypeFromObjectin interfaceITypeLoaderStackInternal
-
getTypeByFullNameIfValid
public IType getTypeByFullNameIfValid(java.lang.String fullyQualifiedName, boolean skipJava)
- Specified by:
getTypeByFullNameIfValidin interfaceITypeLoaderStackInternal
-
findInCache
private IType findInCache(java.lang.String fqnNoArrays)
-
findInCaseInsenstiveCache
private IType findInCaseInsenstiveCache(java.lang.String fqnNoArrays)
-
stripArrayBrackets
static java.lang.String stripArrayBrackets(java.lang.String name)
\- Parameters:
name- The name- Returns:
- The result of stripping all trailing occurrences of array brackets ("[]")
from
name. Examples:entity.Coverage => entity.Coverage entity.Coverage[] => entity.Coverage entity.Coverage[][][] => entity.Coverage
-
loadTypeAndCacheResult
private IType loadTypeAndCacheResult(java.lang.String fullyQualifiedName, boolean skipJava)
-
loadNamespaceAndCacheResult
private IType loadNamespaceAndCacheResult(java.lang.String fullyQualifiedName)
-
refreshed
public void refreshed()
- Specified by:
refreshedin interfaceITypeLoaderStack
-
clearFromCaches
private void clearFromCaches(java.lang.String fullyQualifiedTypeName)
-
loadType
private Pair<IType,ITypeLoader> loadType(java.lang.String fullyQualifiedName, boolean skipJava)
-
loadNamespaceType
private IType loadNamespaceType(java.lang.String namespace)
-
isProxyType
private boolean isProxyType(java.lang.String fullyQualifiedName, ITypeLoader loader)
-
getTypeLoaderStack
public java.util.List<ITypeLoader> getTypeLoaderStack()
- Specified by:
getTypeLoaderStackin interfaceITypeLoaderStack
-
cacheType
private IType cacheType(java.lang.String name, Pair<IType,ITypeLoader> pair)
Adds the type to the cache.
-
getTypeRefFactory
public ITypeRefFactory getTypeRefFactory()
- Specified by:
getTypeRefFactoryin interfaceITypeLoaderStack
-
uninitializeTypeLoaders
public void uninitializeTypeLoaders()
-
getDefaultTypeLoader
public DefaultTypeLoader getDefaultTypeLoader()
- Specified by:
getDefaultTypeLoaderin interfaceITypeLoaderStack
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
shutdown
public void shutdown()
- Specified by:
shutdownin interfaceITypeLoaderStack
-
refresh
public boolean refresh(IResource file, java.lang.String typeName, RefreshKind refreshKind)
- Specified by:
refreshin interfaceITypeLoaderStackInternal
-
refreshDirectory
private boolean refreshDirectory(IDirectory directory, RefreshKind kind)
-
refreshNamespaceCaches
private void refreshNamespaceCaches(java.lang.String namespace, ITypeLoader typeLoader, RefreshKind kind)
-
refreshFile
private boolean refreshFile(IFile file, java.lang.String typeName, RefreshKind kind)
-
getCachedType
public IType getCachedType(java.lang.String fqn)
-
-