Interface IBeanValueProperty<S,T>

Type Parameters:
S - type of the source object
T - type of the value of the property
All Superinterfaces:
IBeanProperty, IProperty, IValueProperty<S,T>

public interface IBeanValueProperty<S,T> extends IBeanProperty, IValueProperty<S,T>
An IValueProperty extension interface with convenience methods for creating nested bean properties.
Since:
1.2
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Method Details

    • value

      <T2> IBeanValueProperty<S,T2> value(String propertyName)
      Returns a master-detail combination of this property and the specified value property.
      Parameters:
      propertyName - the value property to observe. May be nested e.g. "parent.name"
      Returns:
      a master-detail combination of this property and the specified value property.
      See Also:
    • value

      <T2> IBeanValueProperty<S,T2> value(String propertyName, Class<T2> valueType)
      Returns a master-detail combination of this property and the specified value property.
      Parameters:
      propertyName - the value property to observe. May be nested e.g. "parent.name"
      valueType - the value type of the named property
      Returns:
      a master-detail combination of this property and the specified value property.
      See Also:
    • value

      <T2> IBeanValueProperty<S,T2> value(IBeanValueProperty<? super T,T2> property)
      Returns a master-detail combination of this property and the specified value property. The returned property will observe the specified detail value property for the value of the master value property.

      Example:

       // Observes the Node-typed "parent" property of a Node object
       IBeanValueProperty parent = BeanProperties.value(Node.class, "parent");
       // Observes the string-typed "name" property of a Node object
       IBeanValueProperty name = BeanProperties.value(Node.class, "name");
       // Observes the name of the parent of a Node object.
       IBeanValueProperty parentName = parent.value(name);
       
      Parameters:
      property - the detail property to observe
      Returns:
      a master-detail combination of this property and the specified value property.
    • list

      <E> IBeanListProperty<S,E> list(String propertyName)
      Returns a master-detail combination of this property and the specified list property.
      Parameters:
      propertyName - the list property to observe
      Returns:
      a master-detail combination of this property and the specified list property.
      See Also:
    • list

      <E> IBeanListProperty<S,E> list(String propertyName, Class<E> elementType)
      Returns a master-detail combination of this property and the specified list property.
      Parameters:
      propertyName - the list property to observe
      elementType - the element type of the named property
      Returns:
      a master-detail combination of this property and the specified list property.
      See Also:
    • list

      <E> IBeanListProperty<S,E> list(IBeanListProperty<? super T,E> property)
      Returns a master-detail combination of this property and the specified list property. The returned property will observe the specified list property for the value of the master property.

      Example:

       // Observes the Node-typed "parent" property of a Node object.
       IBeanValueProperty parent = BeanProperties.value(Node.class, "parent");
       // Observes the List-typed "children" property of a Node object
       // where the elements are Node objects
       IBeanListProperty children = BeanProperties.list(Node.class, "children",
                      Node.class);
       // Observes the children of the parent (siblings) of a Node object.
       IBeanListProperty siblings = parent.list(children);
       
      Parameters:
      property - the detail property to observe
      Returns:
      a master-detail combination of this property and the specified list property.
    • set

      <E> IBeanSetProperty<S,E> set(String propertyName)
      Returns a master-detail combination of this property and the specified set property.
      Parameters:
      propertyName - the set property to observe
      Returns:
      a master-detail combination of this property and the specified set property.
      See Also:
    • set

      <E> IBeanSetProperty<S,E> set(String propertyName, Class<E> elementType)
      Returns a master-detail combination of this property and the specified set property.
      Parameters:
      propertyName - the set property to observe
      elementType - the element type of the named property
      Returns:
      a master-detail combination of this property and the specified set property.
      See Also:
    • set

      <E> IBeanSetProperty<S,E> set(IBeanSetProperty<? super T,E> property)
      Returns a master-detail combination of this property and the specified set property. The returned property will observe the specified set property for the value of the master property.

      Example:

       // Observes the Node-typed "parent" property of a Node object.
       IBeanValueProperty parent = BeanProperties.value(Node.class, "parent");
       // Observes the Set-typed "children" property of a Node object
       // where the elements are Node objects
       IBeanSetProperty children = BeanProperties.set(Node.class, "children",
                      Node.class);
       // Observes the children of the parent (siblings) of a Node object.
       IBeanSetProperty siblings = parent.set(children);
       
      Parameters:
      property - the detail property to observe
      Returns:
      a master-detail combination of this property and the specified set property.
    • map

      <K, V> IBeanMapProperty<S,K,V> map(String propertyName)
      Returns a master-detail combination of this property and the specified map property.
      Parameters:
      propertyName - the map property to observe
      Returns:
      a master-detail combination of this property and the specified map property.
      See Also:
    • map

      <K, V> IBeanMapProperty<S,K,V> map(String propertyName, Class<K> keyType, Class<V> valueType)
      Returns a master-detail combination of this property and the specified map property.
      Parameters:
      propertyName - the map property to observe
      keyType - the key type of the named property
      valueType - the value type of the named property
      Returns:
      a master-detail combination of this property and the specified map property.
      See Also:
    • map

      <K, V> IBeanMapProperty<S,K,V> map(IBeanMapProperty<? super T,K,V> property)
      Returns a master-detail combination of this property and the specified map property. The returned property will observe the specified map property for the value of the master property.

      Example:

       // Observes the Contact-typed "supervisor" property of a
       // Contact class
       IBeanValueProperty supervisor = BeanProperties.value(Contact.class,
                      "supervisor");
       // Observes the property "phoneNumbers" of a Contact object--a property mapping
       // from PhoneNumberType to PhoneNumber "set-typed "children",
       IBeanMapProperty phoneNumbers = BeanProperties.map(Contact.class,
                      "phoneNumbers", PhoneNumberType.class, PhoneNumber.class);
       // Observes the phone numbers of a contact's supervisor:
       IBeanMapProperty supervisorPhoneNumbers = supervisor.map(phoneNumbers);
       
      Parameters:
      property - the detail property to observe
      Returns:
      a master-detail combination of this property and the specified map property.