Package gw.internal.gosu.parser
Class GosuClass
java.lang.Object
gw.lang.reflect.AbstractType
gw.lang.reflect.InnerClassCapableType
gw.internal.gosu.parser.GosuClass
- All Implemented Interfaces:
ICompilableTypeInternal,IGosuClassInternal,IParameterizableType,IFileRepositoryBasedType,IHasInnerClass,ICompilableType,IGosuClass,ICanBeAnnotation,IEnhanceableType,IEnumData,IEnumType,IHasJavaClass,IType,Serializable,Comparable
- Direct Known Subclasses:
GosuClassFragment,GosuEnhancement,GosuProgram,SyntheticClass
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface gw.lang.reflect.gs.IGosuClass
IGosuClass.ProxyUtilNested classes/interfaces inherited from interface gw.internal.gosu.parser.IGosuClassInternal
IGosuClassInternal.Util -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanprivate booleanprivate booleanprivate booleanprivate booleanprivate Booleanprivate booleanprivate booleanprivate List<IGosuClass>private Booleanprivate booleanprivate booleanprivate CompilationStateprivate Stringprivate Stringprivate ITypeprivate LocklessLazyVar<IFunctionType>private IGosuClassInternalprivate GenericTypeVariable[]private ITypeprivate Booleanprivate intprivate IType[]private intprivate SoftReference<Class<?>>private Map<CharSequence,IGosuClassInternal> private ModifierInfoprivate Map<String,IGosuClassInternal> protected GosuClassParseInfoprivate GosuParserprivate IJavaTypeprivate ISourceFileHandleprivate Stringprivate Stringprivate Stringprivate List<IGosuClassInternal>private ITypeprivate GosuClassTypeInfoprivate GosuClassTypeLoaderprivate IType[]private ITypeRefprivate ITypeUsesMapprivate List<ITypeVariableDefinition>private LockingLazyVar<Boolean>private static final longFields inherited from interface gw.lang.reflect.gs.IGosuClass
ANONYMOUS_PREFIX, PROXY_PREFIX, SUPER_PROXY_CLASS_PREFIXFields inherited from interface gw.lang.reflect.IType
EMPTY_ARRAY, EMPTY_TYPE_ARRAY, EMPTY_TYPE_LIST -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedGosuClass(IGosuClass genericClass, IType[] typeParams) protectedGosuClass(IGosuClass genericClass, IType[] typeParams, boolean bCopyState) GosuClass(String strNamespace, String strRelativeName, GosuClassTypeLoader classTypeLoader, ISourceFileHandle sourceFile, ITypeUsesMap typeUsesMap) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBlock(IBlockClass block) voidvoidaddDelegateImpls(ISymbolTable symTable, GosuClassParser parser) voidaddInnerClass(IGosuClassInternal innerGsClass) voidaddInterface(IType type) private voidaddJavaEnhancements(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, IJavaType type) private booleanareSymbolsFromSameDeclaration(IVarStatement varStmt, ISymbol existingSymbol) private voidprivate voidprivate voidvoidassignTypeUsesMap(GosuParser parser) voidassignTypeVarsFromTypeParams(IType[] typeParams) Note a gosu class can be BOTH parameterzied AND generic.intbyte[]compile()voidvoidvoidcompileDefinitionsIfNeeded(boolean bForce) voidvoidcopyGenericState(boolean bCopyHierarchy) voidWhen changing the places from which this method is called run pc's gw.smoketest.pc.job.common.effectivetime.VisibleEffectiveTimeTest cause it will break!private GosuParsercreateParser(CompiledGosuClassSymbolTable symbolTable) booleanensureDefaultConstructor(ISymbolTable symbolTable, GosuParser parser) private booleanequalArgs(IParameterInfo[] parameters, List<ISymbol> args) private static voidfilterJavaDocAnnotations(List<IGosuAnnotation> annotations) private static DynamicFunctionSymbolfindVarPropertyAccessorDfs(String signature, IGosuClassInternal implClass) voidReturns a Set of all IIntrinsicTypes that this class is assignable from, including this class.intgetArrayComponent(Object array, int iIndex) Returns the value of the indexed component in the specified array object.intgetArrayLength(Object array) Returns the length of the specified array object.Make an array type from this type.Class<?>getBlock(int i) intgetCapturedSymbol(String strName) If this is an array type, a type representing the component type of the array.getConstructorFunction(String name) intgetDepth()The display name of this intrinsic type.Returns the type immediately enclosing this type.getEnumValue(String strName) getExternalSymbol(String strName) getFunctionStatement(IMethodInfo method) If this is a parameterized type, returns the generic type this type parameterizes.Returns an array of GenericTypeVariables declared with this Generic Type.List<? extends IGosuAnnotation>getId()private static DynamicFunctionSymbolgetImplDfs(IGosuClassInternal implClass, IFunctionType ifaceFuncType, boolean bAcceptAbstract) getInnerClass(CharSequence relativeName) returns the appropriate inner classIType[]Map<CharSequence,? extends IGosuClass> IType[]getMemberField(String charSequence) getMemberFunction(IFunctionType funcType, boolean bContravariant) getMemberFunction(IFunctionType funcType, String signature, boolean bContravariant) getMemberFunctions(String names) getMemberProperty(String name) intReturns the modifiers for this type, encoded in an integer.getName()The fully qualified name of this intrinsic type.The namespace for this class.protected GosuParsergetOrCreateParser(CompiledGosuClassSymbolTable symbolTable) protected ITypeRefprotected ITypeRefprivate ITypegetOuterMostEnclosingClass(IType innerClass) getParameterizedType(IType... paramTypes) Assuming this intrinsic type is a Generic type, return the parameterized type associated with the given list of type parameters.!! The parser is only set when this class is parsed in an editor in an IDE !!getPropertyDeclaration(String name) private IGosuClassInternalThe relative or unqualified name.IFile[]getStaticField(String name) getStaticProperty(String name) WARNING: This method is slow the first time it is called.Returns the type representing the supertype of this type.Get the type information for this intrinsic type.intReturns the type loader responsible for loading this intrinsic type.IType[]If this is a parameterized type, returns the specific types used to create this type, null otherwies.private TypeVariableDefinitionImplgetTypeVarDefImpl(ITypeVariableDefinition typeVarDef) static List<IFunctionType>getUnimplementedMethods(IGosuClass gsIface, IGosuClass implClass, List<IFunctionType> unimpled, boolean ensurePublic, boolean bAcceptAbstract) getUnimplementedMethods(List<IFunctionType> unimpled, IGosuClassInternal implClass, boolean bAcceptAbstract) private ListgetUnmodifiableValues(Map functionSymbolMap) private static booleanhandleParameterizedDfs(IGosuClass implClass, IMethodInfo mi, IFunctionType ifaceFuncType, boolean bAcceptAbstract) booleanbooleanbooleanprivate booleanhasBeenUpdated(IGosuClassInternal type, int tiChecksum) booleanhasError()private booleanbooleanprivate booleanhaveAncestorsBeenUpdated(IGosuClassInternal type, int tiCheckSum) private voidbooleanbooleanisAccessible(IGosuClassInternal compilingClass, AbstractDynamicSymbol ads) private booleanisAccessible(IGosuClassInternal compilingClass, IVarStatement varStmt) booleanbooleanbooleanisArray()True if this is an array.private static booleanisAssignable(DynamicFunctionSymbol implDfs, IFunctionType ifaceFuncType) private booleanisAssignable(IFunctionType funcType, IDynamicFunctionSymbol dfs, boolean bContravariant) booleanisAssignableFrom(IType type) Determines if the type represented by this intrinsic type is either the same as, or is a super-type of the type represented by the specified type parameter.booleanbooleanbooleanbooleanprivate booleanisCompilingDeclarationsFor(IScriptPartId scriptPart) booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanTrue if this type has been replaced with a newer version of the same name in the type system.booleanisEnum()Returns true if this type is an enumeration.booleanisFinal()True if this type cannot be extended.booleanReturns true if this ia a Generic Type.booleanprivate booleanprivate booleanprivate booleanisHidden(IVarStatement varStmt) booleanbooleanReturns true if this type is an interface.booleanAre intances of this type mutable? Note sometimes it's difficult to determine.(package private) static booleanbooleanReturns true if this ia a Parameterized Type.booleanTrue if this type represents a primitive type e.g., Java int, char, etc.booleanisProxy()booleanisStale()booleanisStatic()booleanbooleanbooleanisSubClass(IType gsSubType) booleanprivate booleanbooleanisValid()Defines this type if it is not yet fully defined.makeArrayInstance(int iLength) Construct an array instance of specified length.protected IGosuClassInternalprivate GosuParserprivate GosuParsermakeParserForPhase(boolean header) voidprivate voidprivate IGosuClassInternalmaybeLoadBlockToInterfaceProxy(String relativeName) private voidvoidputClassMembers(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic) voidputClassMembers(GosuClassTypeLoader loader, GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic) voidputClassMembers(GosuClassTypeLoader loader, GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, boolean bStaticImport) private voidputConstructors(GosuParser owner, ISymbolTable table, boolean bSuperClass) private voidputEnhancements(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, IModule module, IType type) private voidputFields(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass) private voidputFunctions(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass) private voidputProperties(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass) private voidputStaticFields(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) private voidputStaticFunctions(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) private voidputStaticProperties(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) IType requires this method be implemented to ensure IType instances can be centrally defined and cached.voidremoveBlock(IBlockClass block) voidremoveInnerClass(IGosuClassInternal innerGsClass) resolveRelativeInnerClass(String strRelativeInnerClassName, boolean bForce) voidsetAnnotations(List<IGosuAnnotation> annotations) voidsetArrayComponent(Object array, int iIndex, Object value) Sets the value of the indexed component in the specified array object.voidsetCannotCaptureSymbols(boolean bCannotCaptureSymbols) voidsetCompilingDeclarations(boolean bCompilingDeclarations) voidsetCompilingDefinitions(boolean bCompilingDefinitions) voidsetCompilingHeader(boolean bCompilingHeader) voidsetCreateEditorParser(boolean bEditorParser) voidvoidvoidvoidsetDiscarded(boolean bDiscarded) voidsetEditorParser(GosuParser parser) !! Used only when compiling from an edtior !!voidsetEnclosingType(IType enclosingType) Only for use during type loading e.g., from GosuClassTypeLoadervoidsetEnum()voidsetFullDescription(String description) voidsetGenericTypeVariables(List<ITypeVariableDefinition> typeVarExprList) voidsetHasAssertions(boolean bHasAssertions) voidvoidvoidsetInterface(boolean bInterface) voidsetJavaType(IJavaType javaType) voidsetModifierInfo(ModifierInfo modifierInfo) voidsetNamespace(String namespace) voidvoidsetStructure(boolean bStructure) voidsetSuperType(IType superType) voidsetTypeUsesMap(ITypeUsesMap usesMap) private booleanbooleanbooleanbooleanvoidtoString()voidvoidUnload or nullify any references to this IType's ITypeInfo.private voidMethods inherited from class gw.lang.reflect.AbstractType
getLiteralMetaType, getMetaType, getTheRefMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface gw.lang.parser.IFileRepositoryBasedType
getJavaNameMethods inherited from interface gw.lang.reflect.IType
getLiteralMetaType, getMetaType, isDynamic
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
_strFullName
-
_typeParams
-
_parseInfo
-
_strNamespace
-
_strRelativeName
-
_typeLoader
-
_bInterface
private transient boolean _bInterface -
_bStructure
private transient boolean _bStructure -
_bEnum
private transient boolean _bEnum -
_mapInnerClasses
-
_setTypes
-
_interfaces
-
_superType
-
_enclosingType
-
_proxiedJavaClassInGosuProxy
-
_javaClass
-
_genericClass
-
_parameterizationByParamsName
-
_functionalInterface
-
_typeInfo
-
_gsArrayClass
-
_bHasSessionVarStatements
-
_iMdChecksum
private transient int _iMdChecksum -
_iTiChecksum
private transient int _iTiChecksum -
_compilationState
-
_bEditorParser
private transient boolean _bEditorParser -
_sourceFileHandle
-
_subtypes
-
_description
-
_defaultConstructorName
-
_bCannotCaptureSymbols
private transient boolean _bCannotCaptureSymbols -
_hasError
-
_bDiscarded
private transient boolean _bDiscarded -
_bInitializing
private transient boolean _bInitializing -
_blocks
-
_valid
-
_typeRef
-
_typeVarDefs
-
_genTypeVar
-
_parser
-
_typeUsesMap
-
_bStrictGenerics
-
_modifierInfo
-
_bHasAssertions
private transient boolean _bHasAssertions -
_bUsesQueryUsageSiteValidation
private transient boolean _bUsesQueryUsageSiteValidation
-
-
Constructor Details
-
GosuClass
public GosuClass(String strNamespace, String strRelativeName, GosuClassTypeLoader classTypeLoader, ISourceFileHandle sourceFile, ITypeUsesMap typeUsesMap) -
GosuClass
-
GosuClass
-
-
Method Details
-
getParseInfo
- Specified by:
getParseInfoin interfaceICompilableTypeInternal- Specified by:
getParseInfoin interfaceIGosuClassInternal
-
hasAssertions
public boolean hasAssertions()- Specified by:
hasAssertionsin interfaceICompilableTypeInternal
-
setHasAssertions
public void setHasAssertions(boolean bHasAssertions) - Specified by:
setHasAssertionsin interfaceIGosuClassInternal
-
dontEverCallThis
- Specified by:
dontEverCallThisin interfaceIGosuClassInternal
-
copyGenericState
public void copyGenericState(boolean bCopyHierarchy) - Specified by:
copyGenericStatein interfaceIGosuClassInternal
-
copyHierarchyInfo
public void copyHierarchyInfo()- Specified by:
copyHierarchyInfoin interfaceIGosuClassInternal
-
assignParameterizedJavaTypeIfProxy
private void assignParameterizedJavaTypeIfProxy() -
assignParameterizedSuperType
private void assignParameterizedSuperType() -
assignParameterizedInterfaces
private void assignParameterizedInterfaces() -
getName
Description copied from interface:ITypeThe fully qualified name of this intrinsic type. -
getDisplayName
Description copied from interface:ITypeThe display name of this intrinsic type. Often this is simply the same asIType.getName(), but in some cases a type may want to modify it's name for presentation to the user.- Specified by:
getDisplayNamein interfaceIType
-
getRelativeName
Description copied from interface:ITypeThe relative or unqualified name. For a class this should be just the class name without the package name.- Specified by:
getRelativeNamein interfaceIType
-
getNamespace
Description copied from interface:ITypeThe namespace for this class. For a java class this will be the package, while for other types of intrinsic types it could be another logical name.- Specified by:
getNamespacein interfaceIType
-
setNamespace
- Specified by:
setNamespacein interfaceIGosuClass
-
getTypeLoader
Description copied from interface:ITypeReturns the type loader responsible for loading this intrinsic type.- Specified by:
getTypeLoaderin interfaceICompilableType- Specified by:
getTypeLoaderin interfaceIGosuClassInternal- Specified by:
getTypeLoaderin interfaceIType
-
getSupertype
Description copied from interface:ITypeReturns the type representing the supertype of this type. Returns null if this type has no supertype.- Specified by:
getSupertypein interfaceIType
-
getGenericType
Description copied from interface:ITypeIf this is a parameterized type, returns the generic type this type parameterizes. Otherwise, returns null.- Specified by:
getGenericTypein interfaceIType
-
isFinal
public boolean isFinal()Description copied from interface:ITypeTrue if this type cannot be extended. -
isInterface
public boolean isInterface()Description copied from interface:ITypeReturns true if this type is an interface.- Specified by:
isInterfacein interfaceIType
-
setInterface
public void setInterface(boolean bInterface) - Specified by:
setInterfacein interfaceIGosuClassInternal
-
isStructure
public boolean isStructure()- Specified by:
isStructurein interfaceIGosuClass
-
setStructure
public void setStructure(boolean bStructure) - Specified by:
setStructurein interfaceIGosuClassInternal
-
isEnum
public boolean isEnum()Description copied from interface:ITypeReturns true if this type is an enumeration. -
setEnum
public void setEnum()- Specified by:
setEnumin interfaceIGosuClassInternal
-
getEnumConstants
- Specified by:
getEnumConstantsin interfaceIEnumData
-
getEnumValues
- Specified by:
getEnumValuesin interfaceIEnumData
-
getEnumValue
- Specified by:
getEnumValuein interfaceIEnumData
-
getInterfaces
- Specified by:
getInterfacesin interfaceIType- Returns:
- If this is a class, returns a list of all the interfaces this type implements. Similarly, if this is an interface, returns a list of all the interfaces this type extends. In any case, returns an empty list if this type neither implements nor extends interfaces.
-
maybeAssignInterfacesForParameterizedClass
private void maybeAssignInterfacesForParameterizedClass() -
addInterface
- Specified by:
addInterfacein interfaceIGosuClassInternal
-
getJavaType
- Specified by:
getJavaTypein interfaceIGosuClass
-
setJavaType
- Specified by:
setJavaTypein interfaceIGosuClassInternal
-
findProxiedClassInHierarchy
- Specified by:
findProxiedClassInHierarchyin interfaceIGosuClass
-
isParameterizedType
public boolean isParameterizedType()Description copied from interface:ITypeReturns true if this ia a Parameterized Type. Note a Parameterzied Type is not the same as a Generic Type. The difference is that a Parameterized Type is a concrete version of a Generic Type. For instance, the class ArrayListis a Generic Type, while the class ArrayList is a Parameterized Type of the the Generic Type ArrayList . - Specified by:
isParameterizedTypein interfaceIType
-
isGenericType
public boolean isGenericType()Description copied from interface:ITypeReturns true if this ia a Generic Type.- Specified by:
isGenericTypein interfaceIType- See Also:
-
getGenericTypeVariables
Description copied from interface:ITypeReturns an array of GenericTypeVariables declared with this Generic Type. Otherwise, returns null if this is not a Generic Type.- Specified by:
getGenericTypeVariablesin interfaceIType
-
getParameterizedType
Description copied from interface:ITypeAssuming this intrinsic type is a Generic type, return the parameterized type associated with the given list of type parameters. If the type has not been created yet, creates the parameterized type. Successive calls to this method having identical parameter types must return the identical parameterized type.- Specified by:
getParameterizedTypein interfaceIType- Parameters:
paramTypes- The type parameters.- Returns:
- The concrete type associated with the type parameters.
-
makeCopy
-
getTypeParameters
Description copied from interface:ITypeIf this is a parameterized type, returns the specific types used to create this type, null otherwies.- Specified by:
getTypeParametersin interfaceIType
-
getAllTypesInHierarchy
Description copied from interface:ITypeReturns a Set of all IIntrinsicTypes that this class is assignable from, including this class. This includes implemented interfaces and superclasses, recursively up the hieararchy. For array types, this will be a Set of all types that its component type is assignable from.- Specified by:
getAllTypesInHierarchyin interfaceIType
-
createAllTypesInHierarchy
-
isArray
public boolean isArray()Description copied from interface:ITypeTrue if this is an array. -
isPrimitive
public boolean isPrimitive()Description copied from interface:ITypeTrue if this type represents a primitive type e.g., Java int, char, etc.- Specified by:
isPrimitivein interfaceIType
-
getArrayType
Description copied from interface:ITypeMake an array type from this type. E.g., String -> String[]- Specified by:
getArrayTypein interfaceIType
-
makeArrayInstance
Description copied from interface:ITypeConstruct an array instance of specified length.- Specified by:
makeArrayInstancein interfaceIType
-
getArrayComponent
public Object getArrayComponent(Object array, int iIndex) throws IllegalArgumentException, ArrayIndexOutOfBoundsException Description copied from interface:ITypeReturns the value of the indexed component in the specified array object.- Specified by:
getArrayComponentin interfaceIType- Parameters:
array- An array instance of this intrinsic type.iIndex- The index of the component to get.- Returns:
- The value of the indexed component in the specified array.
- Throws:
IllegalArgumentException- If the specified object is not an array.ArrayIndexOutOfBoundsException- If the specified index argument is negative, or if it is greater than or equal to the length of the specified array
-
setArrayComponent
public void setArrayComponent(Object array, int iIndex, Object value) throws IllegalArgumentException, ArrayIndexOutOfBoundsException Description copied from interface:ITypeSets the value of the indexed component in the specified array object.- Specified by:
setArrayComponentin interfaceIType- Parameters:
array- An array instance of this intrinsic type.iIndex- The index of the component to set.value- The new value of the indexed component.- Throws:
IllegalArgumentException- If the specified object is not an array.ArrayIndexOutOfBoundsException- If the specified index argument is negative, or if it is greater than or equal to the length of the specified array
-
getArrayLength
Description copied from interface:ITypeReturns the length of the specified array object.- Specified by:
getArrayLengthin interfaceIType- Parameters:
array- An array instance of this intrinsic type.- Returns:
- The length of the array.
- Throws:
IllegalArgumentException- If the object argument is not an array.
-
getComponentType
Description copied from interface:ITypeIf this is an array type, a type representing the component type of the array. Otherwise null.- Specified by:
getComponentTypein interfaceIType
-
isAssignableFrom
Description copied from interface:ITypeDetermines if the type represented by this intrinsic type is either the same as, or is a super-type of the type represented by the specified type parameter.- Specified by:
isAssignableFromin interfaceIType
-
isStrictGenerics
public boolean isStrictGenerics()- Specified by:
isStrictGenericsin interfaceIParameterizableType
-
isMutable
public boolean isMutable()Description copied from interface:ITypeAre intances of this type mutable? Note sometimes it's difficult to determine. For instance, java classes don't contain any information about mutability. In which case we always assume mutable, even when the underlying type may in fact be immutable. E.g., even though java.lang.String is not mutable, its corresponding JavaIntrinsicType will say it is. -
isValid
public boolean isValid()Description copied from interface:ITypeDefines this type if it is not yet fully defined. For instance, if this type has source code associated with it, it must fully compile the source for it to be fully defined. -
isStatic
public boolean isStatic()- Specified by:
isStaticin interfaceICompilableType
-
getModifierInfo
- Specified by:
getModifierInfoin interfaceIGosuClass
-
setModifierInfo
- Specified by:
setModifierInfoin interfaceIGosuClassInternal
-
getModifiers
public int getModifiers()Description copied from interface:ITypeReturns the modifiers for this type, encoded in an integer. The modifiers consist of the constants forpublic,protected,private,final,static,abstractthey should be decoded using the methods of classModifier.- Specified by:
getModifiersin interfaceIType- See Also:
-
markStatic
public void markStatic()- Specified by:
markStaticin interfaceIGosuClassInternal
-
isAbstract
public boolean isAbstract()- Specified by:
isAbstractin interfaceIType
-
getTypeInfo
Description copied from interface:ITypeGet the type information for this intrinsic type.- Specified by:
getTypeInfoin interfaceICompilableType- Specified by:
getTypeInfoin interfaceIGosuClass- Specified by:
getTypeInfoin interfaceIType- See Also:
-
hasAncestorBeenUpdated
public boolean hasAncestorBeenUpdated() -
haveAncestorsBeenUpdated
-
hasBeenUpdated
-
unloadTypeInfo
public void unloadTypeInfo()Description copied from interface:ITypeUnload or nullify any references to this IType's ITypeInfo.- Specified by:
unloadTypeInfoin interfaceIType
-
readResolve
Description copied from interface:ITypeIType requires this method be implemented to ensure IType instances can be centrally defined and cached.- Specified by:
readResolvein interfaceIType- Throws:
ObjectStreamException
-
getId
-
getSource
- Specified by:
getSourcein interfaceICompilableTypeInternal- Specified by:
getSourcein interfaceIGosuClass
-
isStale
public boolean isStale()- Specified by:
isStalein interfaceIGosuClassInternal- Returns:
- True if this type is no longer current or has been unloaded.
-
getTypeInfoChecksum
public int getTypeInfoChecksum()- Specified by:
getTypeInfoChecksumin interfaceIGosuClassInternal
-
isProxy
public boolean isProxy()- Specified by:
isProxyin interfaceIGosuClassInternal
-
getFunctionalInterface
- Specified by:
getFunctionalInterfacein interfaceIType
-
getOrCreateTypeReference
-
getOrCreateTypeReference
-
isSubClass
- Specified by:
isSubClassin interfaceIGosuClass
-
isCompiled
public boolean isCompiled()- Specified by:
isCompiledin interfaceIGosuClass
-
getConstructorFunctions
- Specified by:
getConstructorFunctionsin interfaceIGosuClassInternal
-
getUnmodifiableValues
-
getConstructorFunction
- Specified by:
getConstructorFunctionin interfaceIGosuClassInternal
-
getDefaultConstructor
- Specified by:
getDefaultConstructorin interfaceIGosuClassInternal
-
getStaticFunctions
- Specified by:
getStaticFunctionsin interfaceIGosuClassInternal
-
getInnerClassesMap
- Specified by:
getInnerClassesMapin interfaceIGosuClass
-
getInnerClasses
- Specified by:
getInnerClassesin interfaceIGosuClass- Specified by:
getInnerClassesin interfaceIHasInnerClass
-
getKnownInnerClassesWithoutCompiling
- Specified by:
getKnownInnerClassesWithoutCompilingin interfaceIGosuClass
-
getBlock
- Specified by:
getBlockin interfaceICompilableType
-
addInnerClass
- Specified by:
addInnerClassin interfaceIGosuClassInternal
-
removeInnerClass
- Specified by:
removeInnerClassin interfaceIGosuClassInternal
-
resolveRelativeInnerClass
- Specified by:
resolveRelativeInnerClassin interfaceIHasInnerClass- Overrides:
resolveRelativeInnerClassin classInnerClassCapableType
-
getMemberFunctions
- Specified by:
getMemberFunctionsin interfaceIGosuClass
-
getMemberFunction
public DynamicFunctionSymbol getMemberFunction(IFunctionType funcType, String signature, boolean bContravariant) - Specified by:
getMemberFunctionin interfaceIGosuClassInternal
-
getMemberFunctions
- Specified by:
getMemberFunctionsin interfaceICompilableTypeInternal- Specified by:
getMemberFunctionsin interfaceIGosuClassInternal
-
getMemberFunction
- Specified by:
getMemberFunctionin interfaceIGosuClassInternal
-
isAssignable
private boolean isAssignable(IFunctionType funcType, IDynamicFunctionSymbol dfs, boolean bContravariant) -
getStaticProperty
- Specified by:
getStaticPropertyin interfaceICompilableTypeInternal- Specified by:
getStaticPropertyin interfaceIGosuClassInternal
-
getStaticProperties
- Specified by:
getStaticPropertiesin interfaceIGosuClassInternal
-
getMemberProperties
- Specified by:
getMemberPropertiesin interfaceIGosuClassInternal
-
getMemberProperty
- Specified by:
getMemberPropertyin interfaceICompilableTypeInternal- Specified by:
getMemberPropertyin interfaceIGosuClass- Specified by:
getMemberPropertyin interfaceIGosuClassInternal
-
getStaticFields
- Specified by:
getStaticFieldsin interfaceICompilableTypeInternal- Specified by:
getStaticFieldsin interfaceIGosuClassInternal
-
getStaticField
- Specified by:
getStaticFieldin interfaceIGosuClassInternal
-
getMemberFieldIndexByName
- Specified by:
getMemberFieldIndexByNamein interfaceIGosuClassInternal
-
getMemberFields
- Specified by:
getMemberFieldsin interfaceICompilableTypeInternal- Specified by:
getMemberFieldsin interfaceIGosuClass
-
getMemberFieldsMap
- Specified by:
getMemberFieldsMapin interfaceIGosuClass
-
getStaticThisSymbol
- Specified by:
getStaticThisSymbolin interfaceIGosuClassInternal
-
getCapturedSymbols
- Specified by:
getCapturedSymbolsin interfaceICompilableTypeInternal- Specified by:
getCapturedSymbolsin interfaceIGosuClassInternal
-
getCapturedSymbol
- Specified by:
getCapturedSymbolin interfaceICompilableTypeInternal- Specified by:
getCapturedSymbolin interfaceIGosuClassInternal
-
addCapturedSymbol
- Specified by:
addCapturedSymbolin interfaceICompilableTypeInternal- Specified by:
addCapturedSymbolin interfaceIGosuClassInternal
-
ensureDefaultConstructor
- Specified by:
ensureDefaultConstructorin interfaceIGosuClassInternal
-
getClassStatement
- Specified by:
getClassStatementin interfaceICompilableType- Returns:
- The ClassStatement (root ParsedElement) for this GosuClass
NOTE: Because GosuClass is lazily compiled, the ClassStatement returned is NOT guaranteed to be fully compiled by this method, and may return only the declarations of the class. If you wish to access the fully compiled ClassStatement you must call
compileDefinitionsIfNeeded().
-
getClassStatementWithoutCompile
- Specified by:
getClassStatementWithoutCompilein interfaceIGosuClass
-
toString
-
setSuperType
- Specified by:
setSuperTypein interfaceIGosuClassInternal
-
setEnclosingType
Description copied from interface:IGosuClassOnly for use during type loading e.g., from GosuClassTypeLoader- Specified by:
setEnclosingTypein interfaceIGosuClass- Parameters:
enclosingType- the enclosing type
-
getEnclosingTypeReference
- Specified by:
getEnclosingTypeReferencein interfaceIGosuClass
-
isAnonymous
public boolean isAnonymous()- Specified by:
isAnonymousin interfaceICompilableType
-
getDepth
public int getDepth()- Specified by:
getDepthin interfaceICompilableTypeInternal- Specified by:
getDepthin interfaceIGosuClassInternal
-
compileDefinitionsIfNeeded
public void compileDefinitionsIfNeeded()- Specified by:
compileDefinitionsIfNeededin interfaceIGosuClassInternal
-
compileDefinitionsIfNeeded
public void compileDefinitionsIfNeeded(boolean bForce) - Specified by:
compileDefinitionsIfNeededin interfaceICompilableTypeInternal- Specified by:
compileDefinitionsIfNeededin interfaceIGosuClassInternal
-
isTypeRefreshedOutsideOfLock
private boolean isTypeRefreshedOutsideOfLock() -
postAnalyze
private void postAnalyze() -
hasParseIssuesInUsesStatements
private boolean hasParseIssuesInUsesStatements() -
updateParseResultsException
private void updateParseResultsException() -
compileDeclarationsIfNeeded
public void compileDeclarationsIfNeeded()- Specified by:
compileDeclarationsIfNeededin interfaceICompilableTypeInternal- Specified by:
compileDeclarationsIfNeededin interfaceIGosuClassInternal
-
forceTypeInfoInitialization
public void forceTypeInfoInitialization()- Specified by:
forceTypeInfoInitializationin interfaceIGosuClassInternal
-
syncGenericAndParameterizedClasses
public void syncGenericAndParameterizedClasses()- Specified by:
syncGenericAndParameterizedClassesin interfaceIGosuClassInternal
-
getParameterizedTypes
- Specified by:
getParameterizedTypesin interfaceIGosuClassInternal
-
setAnnotations
- Specified by:
setAnnotationsin interfaceIGosuClassInternal
-
filterJavaDocAnnotations
-
getEnclosingNonBlockType
- Specified by:
getEnclosingNonBlockTypein interfaceICompilableTypeInternal- Specified by:
getEnclosingNonBlockTypein interfaceIGosuClassInternal
-
compileHeaderIfNeeded
public void compileHeaderIfNeeded()- Specified by:
compileHeaderIfNeededin interfaceICompilableTypeInternal- Specified by:
compileHeaderIfNeededin interfaceIGosuClassInternal
-
shouldCompileDeclarations
private boolean shouldCompileDeclarations() -
getCompilationState
- Specified by:
getCompilationStatein interfaceIGosuClass
-
isCompilingHeader
public boolean isCompilingHeader()- Specified by:
isCompilingHeaderin interfaceIGosuClass
-
setCompilingHeader
public void setCompilingHeader(boolean bCompilingHeader) - Specified by:
setCompilingHeaderin interfaceIGosuClassInternal
-
isHeaderCompiled
public boolean isHeaderCompiled()- Specified by:
isHeaderCompiledin interfaceIGosuClass
-
setHeaderCompiled
public void setHeaderCompiled()- Specified by:
setHeaderCompiledin interfaceIGosuClassInternal
-
isCompilingDeclarations
public boolean isCompilingDeclarations()- Specified by:
isCompilingDeclarationsin interfaceIGosuClass
-
setCompilingDeclarations
public void setCompilingDeclarations(boolean bCompilingDeclarations) - Specified by:
setCompilingDeclarationsin interfaceIGosuClassInternal
-
isDeclarationsCompiled
public boolean isDeclarationsCompiled()- Specified by:
isDeclarationsCompiledin interfaceIGosuClass
-
isDeclarationsBypassed
public boolean isDeclarationsBypassed()- Specified by:
isDeclarationsBypassedin interfaceIGosuClass
-
setDeclarationsBypassed
public void setDeclarationsBypassed()- Specified by:
setDeclarationsBypassedin interfaceIGosuClassInternal
-
isInnerDeclarationsCompiled
public boolean isInnerDeclarationsCompiled()- Specified by:
isInnerDeclarationsCompiledin interfaceIGosuClass
-
setDeclarationsCompiled
public void setDeclarationsCompiled()- Specified by:
setDeclarationsCompiledin interfaceIGosuClassInternal
-
setInnerDeclarationsCompiled
public void setInnerDeclarationsCompiled()- Specified by:
setInnerDeclarationsCompiledin interfaceIGosuClassInternal
-
isCompilingDefinitions
public boolean isCompilingDefinitions()- Specified by:
isCompilingDefinitionsin interfaceIGosuClass
-
shouldFullyCompileAnnotations
public boolean shouldFullyCompileAnnotations()- Specified by:
shouldFullyCompileAnnotationsin interfaceICompilableTypeInternal
-
setCompilingDefinitions
public void setCompilingDefinitions(boolean bCompilingDefinitions) - Specified by:
setCompilingDefinitionsin interfaceIGosuClassInternal
-
isDefinitionsCompiled
public boolean isDefinitionsCompiled()- Specified by:
isDefinitionsCompiledin interfaceIGosuClass
-
setDefinitionsCompiled
public void setDefinitionsCompiled()- Specified by:
setDefinitionsCompiledin interfaceIGosuClassInternal
-
getSourceFileHandle
- Specified by:
getSourceFileHandlein interfaceIFileRepositoryBasedType
-
getLoadedInnerClasses
- Specified by:
getLoadedInnerClassesin interfaceIHasInnerClass
-
getClassType
- Specified by:
getClassTypein interfaceIFileRepositoryBasedType
-
getGosuAnnotations
- Specified by:
getGosuAnnotationsin interfaceICompilableTypeInternal- Specified by:
getGosuAnnotationsin interfaceIGosuClassInternal
-
createNewParseInfo
When changing the places from which this method is called run pc's gw.smoketest.pc.job.common.effectivetime.VisibleEffectiveTimeTest cause it will break!- Specified by:
createNewParseInfoin interfaceIGosuClassInternal
-
isTestClass
public boolean isTestClass()- Specified by:
isTestClassin interfaceIGosuClass
-
getInnerClass
Description copied from interface:IHasInnerClassreturns the appropriate inner class- Specified by:
getInnerClassin interfaceIGosuClass- Specified by:
getInnerClassin interfaceIHasInnerClass- Returns:
-
maybeLoadBlockToInterfaceProxy
-
getMemberField
- Specified by:
getMemberFieldin interfaceICompilableTypeInternal- Specified by:
getMemberFieldin interfaceIGosuClassInternal
-
shouldKeepDebugInfo
public boolean shouldKeepDebugInfo()- Specified by:
shouldKeepDebugInfoin interfaceIGosuClass
-
getSuperClass
- Specified by:
getSuperClassin interfaceIGosuClassInternal
-
getEnclosingType
Description copied from interface:ITypeReturns the type immediately enclosing this type. If this type is not enclosed, returns null.- Specified by:
getEnclosingTypein interfaceICompilableType- Specified by:
getEnclosingTypein interfaceICompilableTypeInternal- Specified by:
getEnclosingTypein interfaceIType
-
hasBackingClass
public boolean hasBackingClass()- Specified by:
hasBackingClassin interfaceIGosuClass
-
unloadBackingClass
public void unloadBackingClass()- Specified by:
unloadBackingClassin interfaceIGosuClass
-
getBackingClass
- Specified by:
getBackingClassin interfaceIHasJavaClass
-
isCompilable
public boolean isCompilable()- Specified by:
isCompilablein interfaceIType
-
compile
public byte[] compile() -
getExternalSymbol
- Specified by:
getExternalSymbolin interfaceICompilableType
-
putClassMembers
public void putClassMembers(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic) - Specified by:
putClassMembersin interfaceICompilableTypeInternal- Specified by:
putClassMembersin interfaceIGosuClassInternal
-
putClassMembers
public void putClassMembers(GosuClassTypeLoader loader, GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic) - Specified by:
putClassMembersin interfaceICompilableTypeInternal- Specified by:
putClassMembersin interfaceIGosuClassInternal
-
putClassMembers
public void putClassMembers(GosuClassTypeLoader loader, GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, boolean bStaticImport) - Specified by:
putClassMembersin interfaceIGosuClassInternal
-
addJavaEnhancements
private void addJavaEnhancements(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, IJavaType type) -
putEnhancements
private void putEnhancements(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bStatic, IModule module, IType type) -
putFunctions
private void putFunctions(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass) -
isHidden
-
isHidden
-
isHidden
-
isCompilingDeclarationsFor
-
putProperties
private void putProperties(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass) -
putConstructors
-
putStaticFunctions
private void putStaticFunctions(GosuParser owner, ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) -
putStaticProperties
private void putStaticProperties(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) -
putStaticFields
private void putStaticFields(ISymbolTable table, IGosuClassInternal gsContextClass, boolean bSuperClass, boolean bStaticImport) -
areSymbolsFromSameDeclaration
-
putFields
-
isAccessible
- Specified by:
isAccessiblein interfaceIGosuClassInternal
-
isAccessible
-
getOuterMostEnclosingClass
-
setParseResultsException
- Specified by:
setParseResultsExceptionin interfaceIGosuClassInternal
-
hasError
public boolean hasError()- Specified by:
hasErrorin interfaceIGosuClass
-
hasWarnings
public boolean hasWarnings()- Specified by:
hasWarningsin interfaceIGosuClass
-
getPureGenericClass
-
getParseResultsException
- Specified by:
getParseResultsExceptionin interfaceIGosuClass
-
compareTo
- Specified by:
compareToin interfaceComparable
-
shouldResolve
public boolean shouldResolve()- Specified by:
shouldResolvein interfaceIGosuClassInternal
-
makeParserForPhase
-
makeParserForPhase
-
getTypeUsesMap
- Specified by:
getTypeUsesMapin interfaceICompilableType
-
setTypeUsesMap
- Specified by:
setTypeUsesMapin interfaceIGosuClassInternal
-
assignTypeUsesMap
- Specified by:
assignTypeUsesMapin interfaceICompilableTypeInternal- Specified by:
assignTypeUsesMapin interfaceIGosuClassInternal
-
setEditorParser
!! Used only when compiling from an edtior !!- Specified by:
setEditorParserin interfaceIGosuClassInternal
-
setCreateEditorParser
public void setCreateEditorParser(boolean bEditorParser) - Specified by:
setCreateEditorParserin interfaceIGosuClass
-
isCreateEditorParser
public boolean isCreateEditorParser()- Specified by:
isCreateEditorParserin interfaceICompilableTypeInternal- Specified by:
isCreateEditorParserin interfaceIGosuClassInternal
-
getAnonymousInnerClassCount
public int getAnonymousInnerClassCount()- Specified by:
getAnonymousInnerClassCountin interfaceICompilableTypeInternal
-
getParser
!! The parser is only set when this class is parsed in an editor in an IDE !!- Specified by:
getParserin interfaceICompilableType
-
getOrCreateParser
-
createParser
-
addDelegateImpls
- Specified by:
addDelegateImplsin interfaceIGosuClassInternal
-
getUnimplementedMethods
- Specified by:
getUnimplementedMethodsin interfaceIGosuClassInternal
-
getUnimplementedMethods
public List<IFunctionType> getUnimplementedMethods(List<IFunctionType> unimpled, IGosuClassInternal implClass, boolean bAcceptAbstract) - Specified by:
getUnimplementedMethodsin interfaceIGosuClassInternal
-
getUnimplementedMethods
public static List<IFunctionType> getUnimplementedMethods(IGosuClass gsIface, IGosuClass implClass, List<IFunctionType> unimpled, boolean ensurePublic, boolean bAcceptAbstract) -
handleParameterizedDfs
private static boolean handleParameterizedDfs(IGosuClass implClass, IMethodInfo mi, IFunctionType ifaceFuncType, boolean bAcceptAbstract) -
isAssignable
-
isObjectMethod
-
getImplDfs
private static DynamicFunctionSymbol getImplDfs(IGosuClassInternal implClass, IFunctionType ifaceFuncType, boolean bAcceptAbstract) -
findVarPropertyAccessorDfs
private static DynamicFunctionSymbol findVarPropertyAccessorDfs(String signature, IGosuClassInternal implClass) -
setFullDescription
- Specified by:
setFullDescriptionin interfaceIGosuClassInternal
-
getFullDescription
- Specified by:
getFullDescriptionin interfaceIGosuClassInternal
-
getSubtypes
Description copied from interface:IGosuClassWARNING: This method is slow the first time it is called. It will iterate over all types in the system and find all matching subtypes- Specified by:
getSubtypesin interfaceIGosuClass- Returns:
- all subtypes of this type
-
isDiscarded
public boolean isDiscarded()Description copied from interface:ITypeTrue if this type has been replaced with a newer version of the same name in the type system.- Specified by:
isDiscardedin interfaceIType
-
setDiscarded
public void setDiscarded(boolean bDiscarded) - Specified by:
setDiscardedin interfaceIType
-
isCompoundType
public boolean isCompoundType()- Specified by:
isCompoundTypein interfaceIType
-
getCompoundTypeComponents
- Specified by:
getCompoundTypeComponentsin interfaceIType
-
isCannotCaptureSymbols
public boolean isCannotCaptureSymbols()- Specified by:
isCannotCaptureSymbolsin interfaceIGosuClassInternal
-
setCannotCaptureSymbols
public void setCannotCaptureSymbols(boolean bCannotCaptureSymbols) - Specified by:
setCannotCaptureSymbolsin interfaceIGosuClassInternal
-
getBlocks
- Specified by:
getBlocksin interfaceIGosuClass- Specified by:
getBlocksin interfaceIGosuClassInternal
-
getBlockCount
public int getBlockCount()- Specified by:
getBlockCountin interfaceICompilableTypeInternal- Specified by:
getBlockCountin interfaceIGosuClassInternal
-
addBlock
- Specified by:
addBlockin interfaceICompilableTypeInternal- Specified by:
addBlockin interfaceIGosuClassInternal
-
removeBlock
- Specified by:
removeBlockin interfaceICompilableTypeInternal- Specified by:
removeBlockin interfaceIGosuClassInternal
-
initLazyVars
private void initLazyVars() -
assignTypeVarsFromTypeParams
Note a gosu class can be BOTH parameterzied AND generic. For example, class Bar{ function blah() : T {...} } class Foo extends Bar {} The class Bar here is parameterized by the type var from Foo, yet it is still a generic class. The blah() method in Foo's typeinfo must have a return type consistent with Foo's type var upper bound, CharSequence. //## todo: maybe we don't need this concept any longer? i.e., parameterization should work correctly regardless. -
getTypeVarDefs
-
setGenericTypeVariables
- Specified by:
setGenericTypeVariablesin interfaceIGosuClassInternal
-
getTypeVarDefImpl
-
getFunctionStatement
- Specified by:
getFunctionStatementin interfaceIGosuClass
-
getPropertyDeclaration
- Specified by:
getPropertyDeclarationin interfaceIGosuClass
-
getConstructorStatement
- Specified by:
getConstructorStatementin interfaceIGosuClass
-
equalArgs
-
getLoaderParameterizedTypes
- Specified by:
getLoaderParameterizedTypesin interfaceIParameterizableType
-
getSourceFiles
- Specified by:
getSourceFilesin interfaceIType
-
isAnnotation
public boolean isAnnotation()- Specified by:
isAnnotationin interfaceICanBeAnnotation
-