Package gw.internal.gosu.parser
Class TypeUsesMap
java.lang.Object
gw.internal.gosu.parser.TypeUsesMap
- All Implemented Interfaces:
ITypeUsesMap
,Serializable
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
private DynamicArray<String>
private DynamicArray<IFeatureInfo>
private DynamicArray<String>
private boolean
private DynamicArray<String>
private DynamicArray<String>
private HashMap<String,
IUsesStatement> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
addToDefaultTypeUses
(String strType) Add the specified type to the set of default types.void
void
addToFeatureSpaces
(String strType) void
addToSpecialTypeUses
(String strType) void
addToTypeUses
(IUsesStatement usesSmt) Adds a type to the current set of types.void
addToTypeUses
(String strType) Adds a type to the current set of types.private void
addToTypeUses
(String strQualifiedType, Map<String, String> mapQualifiedNameByRelativeName, List<String> namespacesSet) private void
void
Clears all types not in the default set of types;boolean
containsType
(String typeName) copy()
Returns a shallow copy of this map.Copies the type uses map but alias the global map from this.Returns the set of strings representing the namespaces that are currently used by this parser.Returns the set of strings representing the types that are currently used by this parser.Return the set of uses-statements that participate in this map.boolean
lock()
Locks this ITypeUsesMap so that it cannot be mutated in the futureresolveRelativeNamespaceInAllNamespaces
(String strRelativeName) private IType
resolveSubType
(String strRelativeName) resolveType
(String strRelativeName) Resolve the type of a relative name via the type uses.private IType
resolveType
(String strRelativeName, String strNs) private IType
resolveTypesInAllNamespaces
(String strRelativeName) void
setSupportRelativePackageResolution
(boolean bSupportRelativePackageResolution) private IType
verifyTypeNameDoesNotHaveRelativePackage
(IType type, String strNs, String strRelativeName)
-
Field Details
-
_bSupportRelativePackageResolution
private boolean _bSupportRelativePackageResolution -
_specialTypeUsesByRelativeName
-
_typeUsesByRelativeName
-
_defaultNamespaces
-
_namespaces
-
_specialNamespaces
-
_featureSpaces
-
_featureLiterals
-
_usesStmts
-
_locked
private boolean _locked
-
-
Constructor Details
-
TypeUsesMap
-
TypeUsesMap
public TypeUsesMap()
-
-
Method Details
-
copy
Description copied from interface:ITypeUsesMap
Returns a shallow copy of this map.- Specified by:
copy
in interfaceITypeUsesMap
-
copyLocalScope
Description copied from interface:ITypeUsesMap
Copies the type uses map but alias the global map from this.- Specified by:
copyLocalScope
in interfaceITypeUsesMap
- Returns:
- a copy of this type uses map.
-
lock
Description copied from interface:ITypeUsesMap
Locks this ITypeUsesMap so that it cannot be mutated in the future- Specified by:
lock
in interfaceITypeUsesMap
- Returns:
- this ITypeUsesMap, so that this method can be used in a builder-like manner.
-
containsType
- Specified by:
containsType
in interfaceITypeUsesMap
- Returns:
- if a type wit the given name can be resolved via this type uses map.
-
getTypeUses
Description copied from interface:ITypeUsesMap
Returns the set of strings representing the types that are currently used by this parser. The set of types includes both those declared in #uses statements and those set via setDefaultTypeUses.- Specified by:
getTypeUses
in interfaceITypeUsesMap
-
getNamespaces
Description copied from interface:ITypeUsesMap
Returns the set of strings representing the namespaces that are currently used by this parser.- Specified by:
getNamespaces
in interfaceITypeUsesMap
-
getFeatureSpaces
- Specified by:
getFeatureSpaces
in interfaceITypeUsesMap
-
getFeatureLiterals
- Specified by:
getFeatureLiterals
in interfaceITypeUsesMap
-
addToTypeUses
Description copied from interface:ITypeUsesMap
Adds a type to the current set of types. Can be a complete type or a wildcard namespace e.g., java.util.HashMap and java.util.* are both legal.- Specified by:
addToTypeUses
in interfaceITypeUsesMap
-
addToFeatureSpaces
- Specified by:
addToFeatureSpaces
in interfaceITypeUsesMap
-
addToFeatureLiterals
- Specified by:
addToFeatureLiterals
in interfaceITypeUsesMap
-
addToTypeUses
Description copied from interface:ITypeUsesMap
Adds a type to the current set of types. Can be a complete type or a wildcard namespace e.g., java.util.HashMap and java.util.* are both legal.- Specified by:
addToTypeUses
in interfaceITypeUsesMap
-
getUsesStatements
Description copied from interface:ITypeUsesMap
Return the set of uses-statements that participate in this map. Note these are the uses-statements compiled from source.- Specified by:
getUsesStatements
in interfaceITypeUsesMap
-
addToDefaultTypeUses
Description copied from interface:ITypeUsesMap
Add the specified type to the set of default types. NOTE: The type is always treated as a package. If it ends in .* then it will be stripped- Specified by:
addToDefaultTypeUses
in interfaceITypeUsesMap
-
checkLocked
private void checkLocked() -
addToSpecialTypeUses
- Specified by:
addToSpecialTypeUses
in interfaceITypeUsesMap
-
resolveType
Description copied from interface:ITypeUsesMap
Resolve the type of a relative name via the type uses. if the relative type matches uses-type, resolves the type as such. If the type matches, but does not resove, throws an exception, otherwise returns null if there is no match.- Specified by:
resolveType
in interfaceITypeUsesMap
-
resolveSubType
-
clearNonDefaultTypeUses
public void clearNonDefaultTypeUses()Description copied from interface:ITypeUsesMap
Clears all types not in the default set of types;- Specified by:
clearNonDefaultTypeUses
in interfaceITypeUsesMap
-
resolveTypesInAllNamespaces
-
resolveType
-
verifyTypeNameDoesNotHaveRelativePackage
-
resolveRelativeNamespaceInAllNamespaces
- Specified by:
resolveRelativeNamespaceInAllNamespaces
in interfaceITypeUsesMap
- Parameters:
strRelativeName
- A relative path name. E.g., "lang" is a relative package name of "java.lang"- Returns:
- The absolute namespace type for the relative name or null if not found.
-
isSupportRelativePackageResolution
public boolean isSupportRelativePackageResolution()- Specified by:
isSupportRelativePackageResolution
in interfaceITypeUsesMap
-
setSupportRelativePackageResolution
public void setSupportRelativePackageResolution(boolean bSupportRelativePackageResolution) - Specified by:
setSupportRelativePackageResolution
in interfaceITypeUsesMap
-
addToTypeUses
private void addToTypeUses(String strQualifiedType, Map<String, String> mapQualifiedNameByRelativeName, List<String> namespacesSet) throws ClassNotFoundException- Throws:
ClassNotFoundException
-