Propertypublic abstract class Property extends Object A property is an abstraction that can be used to represent a mutable value that is held
in a host object. The Property's {@link #set(Object, Object)} or {@link #get(Object)}
methods can be implemented in terms of the private fields of the host object, or via "setter" and
"getter" methods or by some other mechanism, as appropriate. |
Fields Summary |
---|
private final String | mName | private final Class | mType |
Constructors Summary |
---|
public Property(Class type, String name)A constructor that takes an identifying name and {@link #getType() type} for the property.
mName = name;
mType = type;
|
Methods Summary |
---|
public abstract V | get(T object)Returns the current value that this property represents on the given object .
| public java.lang.String | getName()Returns the name for this property.
return mName;
| public java.lang.Class | getType()Returns the type for this property.
return mType;
| public boolean | isReadOnly()Returns true if the {@link #set(Object, Object)} method does not set the value on the target
object (in which case the {@link #set(Object, Object) set()} method should throw a {@link
NoSuchPropertyException} exception). This may happen if the Property wraps functionality that
allows querying the underlying value but not setting it. For example, the {@link #of(Class,
Class, String)} factory method may return a Property with name "foo" for an object that has
only a getFoo() or isFoo() method, but no matching
setFoo() method.
return false;
| public static android.util.Property | of(java.lang.Class hostType, java.lang.Class valueType, java.lang.String name)This factory method creates and returns a Property given the class and
name parameters, where the "name" parameter represents either:
- a public
getName() method on the class which takes no arguments, plus an
optional public setName() method which takes a value of the same type
returned by getName()
- a public
isName() method on the class which takes no arguments, plus an
optional public setName() method which takes a value of the same type
returned by isName()
- a public
name field on the class
If either of the get/is method alternatives is found on the class, but an appropriate
setName() method is not found, the Property will be
{@link #isReadOnly() readOnly}. Calling the {@link #set(Object, Object)} method on such
a property is allowed, but will have no effect.
If neither the methods nor the field are found on the class a
{@link NoSuchPropertyException} exception will be thrown.
return new ReflectiveProperty<T, V>(hostType, valueType, name);
| public void | set(T object, V value)Sets the value on object which this property represents. If the method is unable
to set the value on the target object it will throw an {@link UnsupportedOperationException}
exception.
throw new UnsupportedOperationException("Property " + getName() +" is read-only");
|
|