org.joda.beans.impl.reflection
Class ReflectiveMetaProperty<P>

java.lang.Object
  extended by org.joda.beans.impl.BasicMetaProperty<P>
      extended by org.joda.beans.impl.reflection.ReflectiveMetaProperty<P>
Type Parameters:
P - the type of the property content
All Implemented Interfaces:
BeanQuery<P>, MetaProperty<P>

public final class ReflectiveMetaProperty<P>
extends BasicMetaProperty<P>

A meta-property implemented using a PropertyDescriptor.

The property descriptor class is part of the JDK JavaBean standard. It provides access to get and set a property on a bean.

Instances of this class should be declared as a static constant on the bean, one for each property, followed by a ReflectiveMetaBean declaration.


Method Summary
 List<Annotation> annotations()
          Gets the annotations of the property.
 Property<P> createProperty(Bean bean)
          Creates a property that binds this meta-property to a specific bean.
 Class<?> declaringType()
          Get the type that declares the property, represented as a Class.
 P get(Bean bean)
          Gets the value of the property for the specified bean.
 MetaBean metaBean()
          Gets the meta-bean which owns this meta-property.
static
<P> ReflectiveMetaProperty<P>
of(Class<? extends Bean> beanType, String propertyName)
          Factory to create a meta-property avoiding duplicate generics.
 Type propertyGenericType()
          Gets the generic types of the property.
 Class<P> propertyType()
          Get the type of the property represented as a Class.
 void set(Bean bean, Object value)
          Sets the value of the property on the specified bean.
 PropertyStyle style()
          Gets the style of the property, such as read-only, read-write or write-only.
 
Methods inherited from class org.joda.beans.impl.BasicMetaProperty
annotation, equals, getString, getString, hashCode, name, put, setString, setString, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

of

public static <P> ReflectiveMetaProperty<P> of(Class<? extends Bean> beanType,
                                               String propertyName)
Factory to create a meta-property avoiding duplicate generics.

Type Parameters:
P - the property type
Parameters:
beanType - the bean type, not null
propertyName - the property name, not empty
Returns:
the property, not null

createProperty

public Property<P> createProperty(Bean bean)
Description copied from interface: MetaProperty
Creates a property that binds this meta-property to a specific bean.

This method returns a Property instance that connects this meta-property to the specified bean. The result can be queried and passed around without further reference to the bean.

Specified by:
createProperty in interface MetaProperty<P>
Overrides:
createProperty in class BasicMetaProperty<P>
Parameters:
bean - the bean to create the property for, not null
Returns:
the property, not null

metaBean

public MetaBean metaBean()
Description copied from interface: MetaProperty
Gets the meta-bean which owns this meta-property.

Each meta-property is fully owned by a single bean.

Returns:
the meta-bean, not null

declaringType

public Class<?> declaringType()
Description copied from interface: MetaProperty
Get the type that declares the property, represented as a Class.

This is the type of the bean where the property is declared.

Returns:
the type declaring the property, not null

propertyType

public Class<P> propertyType()
Description copied from interface: MetaProperty
Get the type of the property represented as a Class.

This is the type of the property. For example, the surname of a person would typically be a String.

Returns:
the type of the property, not null

propertyGenericType

public Type propertyGenericType()
Description copied from interface: MetaProperty
Gets the generic types of the property.

This provides access to the generic type declared in the source code.

Returns:
the full generic type of the property, unmodifiable, not null

style

public PropertyStyle style()
Description copied from interface: MetaProperty
Gets the style of the property, such as read-only, read-write or write-only.

Rather than testing against specific values, it is strongly recommended to call the helper methods on the returned style.

Returns:
the property style, not null

annotations

public List<Annotation> annotations()
Description copied from interface: MetaProperty
Gets the annotations of the property.

The annotations are queried from the property. This is typically accomplished by querying the annotations of the underlying instance variable.

Returns:
the annotations, unmodifiable, not null

get

public P get(Bean bean)
Description copied from interface: MetaProperty
Gets the value of the property for the specified bean.

For a standard JavaBean, this is equivalent to calling getFoo() on the bean. Alternate implementations may perform any logic to obtain the value.

Parameters:
bean - the bean to query, not null
Returns:
the value of the property on the specified bean, may be null

set

public void set(Bean bean,
                Object value)
Description copied from interface: MetaProperty
Sets the value of the property on the specified bean.

The value must be of the correct type for the property. For a standard JavaBean, this is equivalent to calling setFoo() on the bean. Alternate implementations may perform any logic to change the value.

Parameters:
bean - the bean to update, not null
value - the value to set into the property on the specified bean, may be null


Copyright © 2007–2015 Joda.org. All rights reserved.