Package gw.internal.gosu.properties
Class PropertiesPropertyInfo
- java.lang.Object
-
- gw.lang.reflect.PropertyInfoBase
-
- gw.internal.gosu.properties.PropertiesPropertyInfo
-
- All Implemented Interfaces:
IPropertiesPropertyInfo,IAnnotatedFeatureInfo,IAttributedFeatureInfo,IFeatureInfo,IIntrinsicTypeReference,IPropertyInfo
class PropertiesPropertyInfo extends PropertyInfoBase implements IPropertiesPropertyInfo
PropertyInfo implementation for properties within aPropertiesTypeInfo
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
IAnnotatedFeatureInfo.IAnnotationInfoHelper
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAttributedFeatureInfo
IAttributedFeatureInfo.MODIFIER
-
-
Field Summary
Fields Modifier and Type Field Description private IPropertyAccessor_accessorprivate boolean_isStaticprivate LocklessLazyVar<ILocationInfo>_locationInfoprivate PropertyNode_propertyNode-
Fields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER
-
-
Constructor Summary
Constructors Constructor Description PropertiesPropertyInfo(PropertiesTypeInfo typeInfo, PropertyNode propertyNode, boolean isStatic)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IPropertyAccessorgetAccessor()java.util.List<IAnnotationInfo>getDeclaredAnnotations()ITypegetFeatureType()The type of this feature e.g., for a property this is the property's type.ILocationInfogetLocationInfo()java.lang.StringgetName()Gets the programmatic name or identifier of this feature.java.lang.StringgetPropertyEntryName()booleanhasAnnotation(IType type)booleanisReadable()booleanisStatic()True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.booleanisWritable(IType whosAskin)-
Methods inherited from class gw.lang.reflect.PropertyInfoBase
getAnnotation, getAnnotations, getAnnotationsOfType, getContainer, getDeprecatedReason, getDescription, getDisplayName, getOwnersType, getPresentationInfo, hasDeclaredAnnotation, isAbstract, isDefaultImpl, isDeprecated, isFinal, isHidden, isInternal, isPrivate, isProtected, isPublic, isScriptable, isVisible, isWritable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getDeprecatedReason, hasDeclaredAnnotation, isDefaultImpl, isDeprecated
-
Methods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isAbstract, isFinal, isHidden, isInternal, isPrivate, isProtected, isPublic, isReified, isScriptable, isVisible
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getContainer, getDescription, getDisplayName, getOwnersType
-
Methods inherited from interface gw.lang.reflect.IIntrinsicTypeReference
getAssignableFeatureType
-
Methods inherited from interface gw.lang.reflect.IPropertyInfo
getPresentationInfo, isReadable, isWritable
-
-
-
-
Field Detail
-
_propertyNode
private final PropertyNode _propertyNode
-
_isStatic
private final boolean _isStatic
-
_locationInfo
private final LocklessLazyVar<ILocationInfo> _locationInfo
-
_accessor
private final IPropertyAccessor _accessor
-
-
Constructor Detail
-
PropertiesPropertyInfo
public PropertiesPropertyInfo(PropertiesTypeInfo typeInfo, PropertyNode propertyNode, boolean isStatic)
-
-
Method Detail
-
getAccessor
public IPropertyAccessor getAccessor()
- Specified by:
getAccessorin interfaceIPropertyInfo- Returns:
- the PropertyAccessor (for getting and setting) this property.
-
isReadable
public boolean isReadable()
- Specified by:
isReadablein interfaceIPropertyInfo- Returns:
- true if the property is readable given the visibility constraint passed in, false otherwise.
-
isWritable
public boolean isWritable(IType whosAskin)
- 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.
-
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- Overrides:
isStaticin classPropertyInfoBase
-
getDeclaredAnnotations
public java.util.List<IAnnotationInfo> getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotationsin interfaceIAnnotatedFeatureInfo- 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.
-
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
-
getFeatureType
public IType 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
-
hasAnnotation
public boolean hasAnnotation(IType type)
- Specified by:
hasAnnotationin interfaceIAnnotatedFeatureInfo- Overrides:
hasAnnotationin classPropertyInfoBase- Parameters:
type- The type of the annotation to test for existence.- Returns:
- true If this feature has an annotation with of the given type, false otherwise
-
getPropertyEntryName
public java.lang.String getPropertyEntryName()
-
getLocationInfo
public ILocationInfo getLocationInfo()
- Specified by:
getLocationInfoin interfaceIFeatureInfo
-
-