Package gw.internal.gosu.parser
Class JavaTypeInfo
- java.lang.Object
-
- gw.lang.reflect.BaseFeatureInfo
-
- gw.internal.gosu.parser.JavaBaseFeatureInfo
-
- gw.internal.gosu.parser.JavaTypeInfo
-
- All Implemented Interfaces:
IAnnotatedFeatureInfo,IAttributedFeatureInfo,IFeatureInfo,IRelativeTypeInfo,ITypeInfo,IUnloadable,IJavaTypeInfo
public class JavaTypeInfo extends JavaBaseFeatureInfo implements IJavaTypeInfo
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classJavaTypeInfo.JavaFeatureManager-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
IAnnotatedFeatureInfo.IAnnotationInfoHelper
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAttributedFeatureInfo
IAttributedFeatureInfo.MODIFIER
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IRelativeTypeInfo
IRelativeTypeInfo.Accessibility
-
Nested classes/interfaces inherited from interface gw.lang.reflect.ITypeInfo
ITypeInfo.FIND
-
-
Field Summary
Fields Modifier and Type Field Description private LockingLazyVar<java.util.List<IConstructorInfo>>_allCtorsprivate IJavaClassInfo_backingClassprivate java.lang.ref.WeakReference<IClassDocNode>_classDocumentationprivate LockingLazyVar<java.util.List<IJavaMethodInfo>>_declaredMethodsprivate LockingLazyVar<java.util.List<IPropertyInfo>>_declaredPropertiesprivate IDocRef<IClassDocNode>_docRefprivate JavaTypeInfo.JavaFeatureManager_fmprivate java.util.concurrent.locks.ReentrantLock_myLockprivate IType_type-
Fields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER
-
Fields inherited from interface gw.lang.reflect.IRelativeTypeInfo
Accessibility_Size
-
Fields inherited from interface gw.lang.reflect.ITypeInfo
TYPEINFO_EXT
-
-
Constructor Summary
Constructors Constructor Description JavaTypeInfo(IType intrType, IJavaClassInfo backingClass)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private IRelativeTypeInfo.AccessibilitygetAccessibilityForClass(IType ownersClass, IType whosAskin)IRelativeTypeInfo.AccessibilitygetAccessibilityForType(IType whosaskin)protected IJavaAnnotatedElementgetAnnotatedElement()IConstructorInfogetCallableConstructor(IType... params)Returns a IConstructorInfo matching the specified parameter types or null if no match is found.IMethodInfogetCallableMethod(java.lang.CharSequence strMethod, IType... params)Returns a IMethodInfo matching the specified name and has parameter types that produce the best match.static ITypegetCompilingClass(IType type)IConstructorInfogetConstructor(IType... params)Returns a IConstructorInfo that has parameter types that produce the best match.IConstructorInfogetConstructor(IType whosAskin, IType[] params)java.util.List<? extends IConstructorInfo>getConstructors()java.util.List<? extends IConstructorInfo>getConstructors(IType whosAskin)java.util.List<IAnnotationInfo>getDeclaredAnnotations()java.util.List<? extends IConstructorInfo>getDeclaredConstructors()Returns a list ofIConstructorInfoobjects reflecting all the constructors declared by the class represented by thisITypeobject.java.util.List<? extends IMethodInfo>getDeclaredMethods()Returns a list ofIMethodInfoobjects reflecting all the methods declared by the class or interface represented by thisITypeobject.java.util.List<? extends IPropertyInfo>getDeclaredProperties()Returns a list ofIPropertyInfoobjects reflecting all the properties declared by the class or interface represented by thisITypeobject.java.lang.StringgetDescription()A full description of this feature.java.lang.StringgetDisplayName()Gets the display name of this feature.(package private) IDocRef<IClassDocNode>getDocNode()IEventInfogetEvent(java.lang.CharSequence strEvent)Get an event mapped to the specified name.java.util.List<IEventInfo>getEvents()ILocationInfogetLocationInfo()IMethodInfogetMethod(IType whosaskin, java.lang.CharSequence methodName, IType... params)IMethodInfogetMethod(java.lang.CharSequence methodName, IType... params)Returns a IMethodInfo matching the specified name and parameter types or null if no match is found.MethodListgetMethods()MethodListgetMethods(IType whosAskin)java.lang.StringgetName()Gets the programmatic name or identifier of this feature.java.util.List<? extends IPropertyInfo>getProperties()java.util.List<IPropertyInfo>getProperties(IType whosAskin)IPropertyInfogetProperty(IType whosAskin, java.lang.CharSequence propName)IPropertyInfogetProperty(java.lang.CharSequence propName)Get a property mapped to the specified name.protected booleanisDefaultEnumFeature()booleanisDeprecated()booleanisHidden()True if this feature is hidden.protected booleanisHiddenViaFeatureDescriptor()booleanisInternal()True if this feature is internal.booleanisPrivate()True if this feature is private.private booleanisPropertyMethod(IJavaMethodDescriptor md)booleanisProtected()True if this feature is protected.booleanisPublic()True if this feature is public.booleanisStatic()True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.protected booleanisVisibleViaFeatureDescriptor(IScriptabilityModifier constraint)voidunload()-
Methods inherited from class gw.internal.gosu.parser.JavaBaseFeatureInfo
isVisible, makeDeprecated
-
Methods inherited from class gw.lang.reflect.BaseFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getContainer, getDeprecatedReason, getOwnersType, getParamTypes, getSuperAnnotatedElements, hasAnnotation, hasDeclaredAnnotation, isAbstract, isDefaultImpl, isFinal, isInternalAPI, isReified, isScriptable, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getDeprecatedReason, hasAnnotation, hasDeclaredAnnotation, isDefaultImpl
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getContainer, getOwnersType
-
-
-
-
Field Detail
-
_type
private final IType _type
-
_backingClass
private final IJavaClassInfo _backingClass
-
_classDocumentation
private java.lang.ref.WeakReference<IClassDocNode> _classDocumentation
-
_declaredProperties
private LockingLazyVar<java.util.List<IPropertyInfo>> _declaredProperties
-
_declaredMethods
private LockingLazyVar<java.util.List<IJavaMethodInfo>> _declaredMethods
-
_allCtors
private LockingLazyVar<java.util.List<IConstructorInfo>> _allCtors
-
_fm
private JavaTypeInfo.JavaFeatureManager _fm
-
_myLock
private final java.util.concurrent.locks.ReentrantLock _myLock
-
_docRef
private IDocRef<IClassDocNode> _docRef
-
-
Constructor Detail
-
JavaTypeInfo
public JavaTypeInfo(IType intrType, IJavaClassInfo backingClass)
-
-
Method Detail
-
isPropertyMethod
private boolean isPropertyMethod(IJavaMethodDescriptor md)
-
unload
public void unload()
- Specified by:
unloadin interfaceIUnloadable
-
getAnnotatedElement
protected IJavaAnnotatedElement getAnnotatedElement()
- Specified by:
getAnnotatedElementin classJavaBaseFeatureInfo
-
isVisibleViaFeatureDescriptor
protected boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint)
- Specified by:
isVisibleViaFeatureDescriptorin classJavaBaseFeatureInfo
-
isHiddenViaFeatureDescriptor
protected boolean isHiddenViaFeatureDescriptor()
- Specified by:
isHiddenViaFeatureDescriptorin classJavaBaseFeatureInfo
-
getAccessibilityForType
public IRelativeTypeInfo.Accessibility getAccessibilityForType(IType whosaskin)
- Specified by:
getAccessibilityForTypein interfaceIRelativeTypeInfo
-
getProperties
public java.util.List<? extends IPropertyInfo> getProperties()
- Specified by:
getPropertiesin interfaceITypeInfo- Returns:
- An unmodifiable random access list of
IPropertyInfoinstances. The list is sorted ascending by name. Returns an empty list if there are no properties.
-
getProperties
public java.util.List<IPropertyInfo> getProperties(IType whosAskin)
- Specified by:
getPropertiesin interfaceIRelativeTypeInfo
-
getProperty
public IPropertyInfo getProperty(java.lang.CharSequence propName)
Description copied from interface:ITypeInfoGet a property mapped to the specified name.- Specified by:
getPropertyin interfaceITypeInfo- Parameters:
propName- The property name.- Returns:
- An IPropertyInfo corresponding to the property name.
-
getProperty
public IPropertyInfo getProperty(IType whosAskin, java.lang.CharSequence propName)
- Specified by:
getPropertyin interfaceIRelativeTypeInfo
-
getMethods
public MethodList getMethods()
- Specified by:
getMethodsin interfaceITypeInfo- Returns:
- An unmodifiable random access list of
IMethodInfoinstances. The list is sorted ascending by name. Returns an empty list if there are no methods.
-
getMethods
public MethodList getMethods(IType whosAskin)
- Specified by:
getMethodsin interfaceIRelativeTypeInfo
-
getConstructors
public java.util.List<? extends IConstructorInfo> getConstructors()
- Specified by:
getConstructorsin interfaceITypeInfo- Returns:
- An unmodifiable random access list of
IConstructorInfoinstances. The list is sorted ascending by name. Returns an empty list if there are no constructors.
-
getConstructors
public java.util.List<? extends IConstructorInfo> getConstructors(IType whosAskin)
- Specified by:
getConstructorsin interfaceIRelativeTypeInfo
-
getMethod
public IMethodInfo getMethod(java.lang.CharSequence methodName, IType... params)
Description copied from interface:ITypeInfoReturns a IMethodInfo matching the specified name and parameter types or null if no match is found. Noteparamsmust exactly match those of the target method in number, order, and type. If null,paramsis treated as an empty array.
-
getMethod
public IMethodInfo getMethod(IType whosaskin, java.lang.CharSequence methodName, IType... params)
- Specified by:
getMethodin interfaceIRelativeTypeInfo
-
getConstructor
public IConstructorInfo getConstructor(IType... params)
Description copied from interface:ITypeInfoReturns 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:
getConstructorin interfaceITypeInfo- 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.
-
getConstructor
public IConstructorInfo getConstructor(IType whosAskin, IType[] params)
- Specified by:
getConstructorin interfaceIRelativeTypeInfo
-
getDeclaredProperties
public java.util.List<? extends IPropertyInfo> getDeclaredProperties()
Description copied from interface:IRelativeTypeInfoReturns a list ofIPropertyInfoobjects reflecting all the properties declared by the class or interface represented by thisITypeobject. 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:
getDeclaredPropertiesin interfaceIRelativeTypeInfo- Returns:
- the list of
IPropertyInfoobjects representing all the declared properties of this class
-
getDeclaredMethods
public java.util.List<? extends IMethodInfo> getDeclaredMethods()
Description copied from interface:IRelativeTypeInfoReturns a list ofIMethodInfoobjects reflecting all the methods declared by the class or interface represented by thisITypeobject. 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:
getDeclaredMethodsin interfaceIRelativeTypeInfo- Returns:
- the list of
IMethodInfoobjects representing all the declared methods of this class
-
getDeclaredConstructors
public java.util.List<? extends IConstructorInfo> getDeclaredConstructors()
Description copied from interface:IRelativeTypeInfoReturns a list ofIConstructorInfoobjects reflecting all the constructors declared by the class represented by thisITypeobject. 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:
getDeclaredConstructorsin interfaceIRelativeTypeInfo- Returns:
- the list of
IConstructorInfoobjects representing all the declared methods of this class
-
getCallableMethod
public IMethodInfo getCallableMethod(java.lang.CharSequence strMethod, IType... params)
Description copied from interface:ITypeInfoReturns 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:
getCallableMethodin interfaceITypeInfo- 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:ITypeInfoReturns a IConstructorInfo matching the specified parameter types or null if no match is found.- Specified by:
getCallableConstructorin interfaceITypeInfo- 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()
-
getEvent
public IEventInfo getEvent(java.lang.CharSequence strEvent)
Description copied from interface:ITypeInfoGet an event mapped to the specified name.
-
getName
public java.lang.String getName()
Description copied from interface:IFeatureInfoGets 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:
getNamein interfaceIFeatureInfo
-
getDisplayName
public java.lang.String getDisplayName()
Description copied from interface:IFeatureInfoGets the display name of this feature. There is no guarantee this display name is localized.- Specified by:
getDisplayNamein interfaceIFeatureInfo- Overrides:
getDisplayNamein classBaseFeatureInfo
-
getDescription
public java.lang.String getDescription()
Description copied from interface:IFeatureInfoA full description of this feature.- Specified by:
getDescriptionin interfaceIFeatureInfo- Overrides:
getDescriptionin classBaseFeatureInfo
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecatedin interfaceIAnnotatedFeatureInfo- Overrides:
isDeprecatedin classBaseFeatureInfo- Returns:
- True if this feature is deprecated.
-
getDeclaredAnnotations
public java.util.List<IAnnotationInfo> getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotationsin interfaceIAnnotatedFeatureInfo- Overrides:
getDeclaredAnnotationsin classJavaBaseFeatureInfo- Returns:
- A map of AnnotationInfo objects by type representing all the annotations associated with this feature, or an empty map if there are no annotations.
-
isHidden
public boolean isHidden()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is hidden. Hidden feature should not to be exposed to earthlings.- Specified by:
isHiddenin interfaceIAttributedFeatureInfo- Overrides:
isHiddenin classJavaBaseFeatureInfo
-
isDefaultEnumFeature
protected boolean isDefaultEnumFeature()
- Specified by:
isDefaultEnumFeaturein classJavaBaseFeatureInfo
-
isStatic
public boolean isStatic()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.- Specified by:
isStaticin interfaceIAttributedFeatureInfo
-
isPrivate
public boolean isPrivate()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is private. Private features are only accessible from within the type that owns them.- Specified by:
isPrivatein interfaceIAttributedFeatureInfo- Overrides:
isPrivatein classBaseFeatureInfo
-
isInternal
public boolean isInternal()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is internal. Internal features are accessible from within the type that owns them and from other types in the same namespace.- Specified by:
isInternalin interfaceIAttributedFeatureInfo- Overrides:
isInternalin classBaseFeatureInfo
-
isProtected
public boolean isProtected()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is protected. Protected features are accessible from within the type that owns them and from derived containers.- Specified by:
isProtectedin interfaceIAttributedFeatureInfo- Overrides:
isProtectedin classBaseFeatureInfo
-
isPublic
public boolean isPublic()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is public. Public features are not restricted.- Specified by:
isPublicin interfaceIAttributedFeatureInfo- Overrides:
isPublicin classBaseFeatureInfo
-
getAccessibilityForClass
private IRelativeTypeInfo.Accessibility getAccessibilityForClass(IType ownersClass, IType whosAskin)
-
getDocNode
IDocRef<IClassDocNode> getDocNode()
-
getLocationInfo
public ILocationInfo getLocationInfo()
- Specified by:
getLocationInfoin interfaceIFeatureInfo
-
-