Property


public abstract class Property
extends Object

java.lang.Object
   ↳ android.util.Property<T, V>


A property is an abstraction that can be used to represent a mutable value that is held in a host object. The Property's set(java.lang.Object, java.lang.Object) or get(java.lang.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.

Summary

Public constructors

Property(Class<V> type, String name)

A constructor that takes an identifying name and type for the property.

Public methods

abstract V get(T object)

Returns the current value that this property represents on the given object.

String getName()

Returns the name for this property.

Class<V> getType()

Returns the type for this property.

boolean isReadOnly()

Returns true if the set(java.lang.Object, java.lang.Object) method does not set the value on the target object (in which case the set() method should throw a NoSuchPropertyException exception).

static <T, V> Property<T, V> of(Class<T> hostType, Class<V> valueType, 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 readOnly.

void set(T object, V value)

Sets the value on object which this property represents.

Inherited methods

Public constructors

Property

Added in API level 14
public Property (Class<V> type, 
                String name)

A constructor that takes an identifying name and type for the property.

Parameters
type Class

name String

Public methods

get

Added in API level 14
public abstract V get (T object)

Returns the current value that this property represents on the given object.

Parameters
object T

Returns
V

getName

Added in API level 14
public String getName ()

Returns the name for this property.

Returns
String

getType

Added in API level 14
public Class<V> getType ()

Returns the type for this property.

Returns
Class<V>

isReadOnly

Added in API level 14
public boolean isReadOnly ()

Returns true if the set(java.lang.Object, java.lang.Object) method does not set the value on the target object (in which case the set() method should throw a NoSuchPropertyException exception). This may happen if the Property wraps functionality that allows querying the underlying value but not setting it. For example, the of(java.lang.Class, java.lang.Class, java.lang.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.

Returns
boolean

of

Added in API level 14
public static Property<T, V> of (Class<T> hostType, 
                Class<V> valueType, 
                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 readOnly. Calling the set(java.lang.Object, java.lang.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 NoSuchPropertyException exception will be thrown.

Parameters
hostType Class

valueType Class

name String

Returns
Property<T, V>

set

Added in API level 14
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 UnsupportedOperationException exception.

Parameters
object T

value V