Interface IBeanSetProperty<S,E>

Type Parameters:
S - type of the source object
E - type of the elements in the set
All Superinterfaces:
IBeanProperty, IProperty, ISetProperty<S,E>

public interface IBeanSetProperty<S,E> extends IBeanProperty, ISetProperty<S,E>
An ISetProperty 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

    • values

      <V> IBeanMapProperty<S,E,V> values(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:
    • values

      <V> IBeanMapProperty<S,E,V> values(String propertyName, Class<V> 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:
    • values

      <V> IBeanMapProperty<S,E,V> values(IBeanValueProperty<? super E,V> property)
      Returns a master-detail combination of this property and the specified value property. The returned property will observe the specified value property for all elements observed by this set property, mapping from this set property's elements (keys) to the specified value property's value for each element (values).

      Example:

       // Observes the set-typed "children" property of a Person object,
       // where the elements are Person objects
       IBeanSetProperty children = BeanProperties.set(Person.class, "children",
                      Person.class);
       // Observes the string-typed "name" property of a Person object
       IBeanValueProperty name = BeanProperties.value(Person.class, "name");
       // Observes a map of children objects to their respective names.
       IBeanMapProperty childrenNames = children.values(name);
       
      Parameters:
      property - the detail property to observe
      Returns:
      a master-detail combination of this property and the specified value property.