Package gw.internal.gosu.parser
Class GosuPropertyInfo
java.lang.Object
gw.lang.reflect.BaseFeatureInfo
gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
gw.internal.gosu.parser.GosuPropertyInfo
- All Implemented Interfaces:
IGosuPropertyInfo,IAnnotatedFeatureInfo,IAttributedFeatureInfo,IFeatureInfo,IGenericMethodInfo,IIntrinsicTypeReference,IMethodBackedPropertyInfo,IPropertyInfo
- Direct Known Subclasses:
ParameterizedGosuPropertyInfo
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classprivate classNested classes/interfaces inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
IAnnotatedFeatureInfo.IAnnotationInfoHelperNested classes/interfaces inherited from interface gw.lang.reflect.IAttributedFeatureInfo
IAttributedFeatureInfo.MODIFIER -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate IPropertyAccessorprivate ITypeprivate booleanprivate ReducedDynamicPropertySymbolprivate ITypeFields inherited from class gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
_declaredAnnotationsFields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanThe type this feature can be assigned from.A full description of this feature.Gets the display name of this feature.getDps()The type of this feature e.g., for a property this is the property's type.protected List<IGosuAnnotation>(package private) IGosuClassInternalgetName()Gets the programmatic name or identifier of this feature.IType[]getParameterizedParameterTypes(IType... typeParams) IType[]getParameterizedParameterTypes2(IType ownersType, IType... typeParams) getParameterizedReturnType(IType... typeParams) inthashCode()inferTypeParametersFromArgumentTypes(IType... argTypes) inferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes) booleanbooleanisAccessible(IType whosAskin, ReducedDynamicFunctionSymbol accessor) private booleanbooleanisFinal()booleanbooleanTrue if this feature is internal.booleanTrue if this feature is private.booleanTrue if this feature is protected.booleanisPublic()True if this feature is public.booleanbooleanisReadable(IType whosAskin) booleanbooleanbooleanisStatic()True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.booleanbooleanisWritable(IType whosAskin) toString()Methods inherited from class gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
getActualTypeInContainer, getDeclaredAnnotations, getDeprecatedReason, getOwnersType, isDeprecated, isHidden, isVisibleMethods inherited from class gw.lang.reflect.BaseFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getContainer, getParamTypes, getSuperAnnotatedElements, hasAnnotation, hasDeclaredAnnotation, isDefaultImpl, isInternalAPI, isScriptableMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getDeclaredAnnotations, getDeprecatedReason, hasAnnotation, hasDeclaredAnnotation, isDefaultImpl, isDeprecatedMethods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isHidden, isScriptable, isVisibleMethods inherited from interface gw.lang.reflect.IFeatureInfo
getContainer, getLocationInfo, getOwnersType
-
Field Details
-
_dps
-
_type
-
_assignableType
-
_accessor
-
_bReadable
private boolean _bReadable
-
-
Constructor Details
-
GosuPropertyInfo
-
-
Method Details
-
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
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
-
getShortDescription
- Specified by:
getShortDescriptionin interfaceIGosuPropertyInfo
-
getDescription
Description copied from interface:IFeatureInfoA full description of this feature.- Specified by:
getDescriptionin interfaceIFeatureInfo- Overrides:
getDescriptionin classBaseFeatureInfo
-
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
-
isAbstract
public boolean isAbstract()- Specified by:
isAbstractin interfaceIAttributedFeatureInfo- Overrides:
isAbstractin classBaseFeatureInfo
-
isFinal
public boolean isFinal()- Specified by:
isFinalin interfaceIAttributedFeatureInfo- Overrides:
isFinalin classBaseFeatureInfo
-
isReified
public boolean isReified()- Specified by:
isReifiedin interfaceIAttributedFeatureInfo- Overrides:
isReifiedin classBaseFeatureInfo
-
isGetterDefault
public boolean isGetterDefault()- Specified by:
isGetterDefaultin interfaceIGosuPropertyInfo
-
isSetterDefault
public boolean isSetterDefault()- Specified by:
isSetterDefaultin interfaceIGosuPropertyInfo
-
isDefault
-
getGosuAnnotations
- Specified by:
getGosuAnnotationsin classGosuBaseAttributedFeatureInfo
-
isReadable
public boolean isReadable()- Specified by:
isReadablein interfaceIPropertyInfo- Returns:
- true if the property is readable given the visibility constraint passed in, false otherwise.
-
isReadable
- Specified by:
isReadablein interfaceIPropertyInfo
-
isWritable
public boolean isWritable()- Specified by:
isWritablein interfaceIPropertyInfo- Returns:
- True if the property is writable given the visibility constraint passed in, false otherwise.
-
isWritable
- Specified by:
isWritablein interfaceIPropertyInfo- Parameters:
whosAskin- The type querying the property writability. For example, passing in the type the property is on will allow properties that have private access in the setter to be written to. Passing in an unrelated type will only allow properties that are to be written to.- Returns:
- True if the property is writable given the visibility constraint passed in, false otherwise.
-
isAccessible
-
getAccessor
- Specified by:
getAccessorin interfaceIPropertyInfo- Returns:
- the PropertyAccessor (for getting and setting) this property.
-
getPresentationInfo
- Specified by:
getPresentationInfoin interfaceIPropertyInfo
-
getGosuClass
IGosuClassInternal getGosuClass() -
getFeatureType
Description copied from interface:IIntrinsicTypeReferenceThe type of this feature e.g., for a property this is the property's type.- Specified by:
getFeatureTypein interfaceIIntrinsicTypeReference
-
getAssignableFeatureType
Description copied from interface:IIntrinsicTypeReferenceThe type this feature can be assigned from. Most of the time this is the same type as getFeatureType(), however it can be different and when it is it should almost always be contravariant with getFeatureType(). A property setter method is the primary use-case. For instance:interface Foo { property Name: CharSequence } class FooImpl implements Foo { var _name: String override property get Name(): String { return _name } override property set Name( cs: CharSequence ) { _name = cs.toString() } }Here FooImpl overrides Foo's Name property with covariance on the getter's return type. This establishes that Name wrt FooImpl is of type String. Yet Foo's setter method must be overridden as-is, a method cannot override another method with covariant parameters. So, in terms of FooImpl's Name property, the setter method is contravariant with String, which again is Name's type wrt of FooImpl. Therefore, FooImpl's Name property should implement getAssignableFeatureType() and return CharSequence.- Specified by:
getAssignableFeatureTypein interfaceIIntrinsicTypeReference
-
getDps
- Specified by:
getDpsin interfaceIGosuPropertyInfo
-
getContainingType
- Specified by:
getContainingTypein interfaceIGosuPropertyInfo
-
equals
-
hashCode
public int hashCode() -
getTypeVariables
- Specified by:
getTypeVariablesin interfaceIGenericMethodInfo- Returns:
- An array of generic type variables if this feature corresponds with a generic type.
-
getParameterizedReturnType
- Specified by:
getParameterizedReturnTypein interfaceIGenericMethodInfo
-
getParameterizedParameterTypes
- Specified by:
getParameterizedParameterTypesin interfaceIGenericMethodInfo
-
getParameterizedParameterTypes2
- Specified by:
getParameterizedParameterTypes2in interfaceIGenericMethodInfo
-
inferTypeParametersFromArgumentTypes
- Specified by:
inferTypeParametersFromArgumentTypesin interfaceIGenericMethodInfo- Parameters:
argTypes- The argument types from a generic method call.- Returns:
- A map of inferred type parameters based on the argTypes. The map
contains only the types that could be inferred -- the map may be empty.
E.g.,
given generic method:
T[] toArray( T[] ) and call: list.toArray( new String[list.size()] ); => the toArray() method call should be automatically parameterized with based on the new String[0].
-
inferTypeParametersFromArgumentTypes2
public TypeVarToTypeMap inferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes) - Specified by:
inferTypeParametersFromArgumentTypes2in interfaceIGenericMethodInfo
-
getReadMethodInfo
- Specified by:
getReadMethodInfoin interfaceIMethodBackedPropertyInfo
-
getWriteMethodInfo
- Specified by:
getWriteMethodInfoin interfaceIMethodBackedPropertyInfo
-
toString
- Overrides:
toStringin classBaseFeatureInfo
-