Class ValueProperty<S,T>

java.lang.Object
org.eclipse.core.databinding.property.value.ValueProperty<S,T>
Type Parameters:
S - type of the source object
T - type of the value of the property
All Implemented Interfaces:
IProperty, IValueProperty<S,T>
Direct Known Subclasses:
DelegatingValueProperty, SimpleValueProperty

public abstract class ValueProperty<S,T> extends Object implements IValueProperty<S,T>
Abstract implementation of IValueProperty
Since:
1.2
Implementation Note:
If methods are added to the interface which this class implements then implementations of those methods must be added to this class.
  • Constructor Details

    • ValueProperty

      public ValueProperty()
  • Method Details

    • getValue

      public T getValue(S source)
      By default, this method returns null in case the source object is itself null. Otherwise, this method delegates to doGetValue(Object).

      Clients may override this method if they e.g. want to return a specific default value in case the source object is null.

      Specified by:
      getValue in interface IValueProperty<S,T>
      Parameters:
      source - the property source (may be null)
      Returns:
      the current value of this property on the specified property source.
      Since:
      1.3
      See Also:
    • doGetValue

      protected T doGetValue(S source)
      Returns the value of the property on the specified source object
      Parameters:
      source - the property source
      Returns:
      the current value of the source's value property
      Since:
      1.3
      Restriction:
      This method is not intended to be referenced by clients.
    • setValue

      public final void setValue(S source, T value)
      Description copied from interface: IValueProperty
      Sets this property on the specified property source to the specified value.

      Note: This method is made available to facilitate basic property access. However if the property source lacks property change notification, then observables on the source object may not be notified of the change. In most cases it is preferable to call IObservableValue.setValue(Object) on the observable instead.

      Specified by:
      setValue in interface IValueProperty<S,T>
      Parameters:
      source - the property source (may be null)
      value - the new property value
      Since:
      1.3
    • doSetValue

      protected void doSetValue(S source, T value)
      Sets the source's value property to the specified vlaue
      Parameters:
      source - the property source
      value - the new value
      Since:
      1.3
      Restriction:
      This method is not intended to be referenced by clients.
    • observe

      public IObservableValue<T> observe(S source)
      Description copied from interface: IValueProperty
      Returns an observable value observing this value property on the given property source.
      Specified by:
      observe in interface IValueProperty<S,T>
      Parameters:
      source - the property source
      Returns:
      an observable value observing this value property on the given property source
    • valueFactory

      public IObservableFactory<S,IObservableValue<T>> valueFactory()
      Description copied from interface: IValueProperty
      Returns a factory for creating observable values tracking this property of a particular property source.
      Specified by:
      valueFactory in interface IValueProperty<S,T>
      Returns:
      a factory for creating observable values tracking this property of a particular property source.
    • valueFactory

      public IObservableFactory<S,IObservableValue<T>> valueFactory(Realm realm)
      Description copied from interface: IValueProperty
      Returns a factory for creating observable values in the given realm, tracking this property of a particular property source.
      Specified by:
      valueFactory in interface IValueProperty<S,T>
      Parameters:
      realm - the realm
      Returns:
      a factory for creating observable values in the given realm, tracking this property of a particular property source.
    • observeDetail

      public <U extends S> IObservableValue<T> observeDetail(IObservableValue<U> master)
      Description copied from interface: IValueProperty
      Returns an observable value on the master observable's realm which tracks this property on the current value of master.
      Specified by:
      observeDetail in interface IValueProperty<S,T>
      Parameters:
      master - the master observable
      Returns:
      an observable value which tracks this property of the current value of master.
    • observeDetail

      public <V extends S> IObservableList<T> observeDetail(IObservableList<V> master)
      Description copied from interface: IValueProperty
      Returns an observable list on the master observable's realm which tracks this property on each element of master.
      Specified by:
      observeDetail in interface IValueProperty<S,T>
      Parameters:
      master - the master observable
      Returns:
      an observable list which tracks this property on each element of the master observable.
      Since:
      1.4
    • observeDetail

      public <V extends S> IObservableMap<V,T> observeDetail(IObservableSet<V> master)
      Description copied from interface: IValueProperty
      Returns an observable map on the master observable's realm where the map's key set is the specified master set, and where each key maps to the current property value for each element.
      Specified by:
      observeDetail in interface IValueProperty<S,T>
      Parameters:
      master - the master observable
      Returns:
      an observable map that tracks the current value of this property for the elements in the given set.
      Since:
      1.4
    • observeDetail

      public <K, V extends S> IObservableMap<K,T> observeDetail(IObservableMap<K,V> master)
      Description copied from interface: IValueProperty
      Returns an observable map on the master observable's realm where the map's key set is the same as the master observable map, and where each value is the property value of the corresponding value in the master observable map.
      Specified by:
      observeDetail in interface IValueProperty<S,T>
      Parameters:
      master - the master observable
      Returns:
      an observable map on the master observable's realm which tracks the current value of this property for the elements in the given map's values collection
      Since:
      1.4
    • value

      public final <U> IValueProperty<S,U> value(IValueProperty<? super T,U> detailValue)
      Description copied from interface: IValueProperty
      Returns the nested combination of this property and the specified detail value property. Value modifications made through the returned property are delegated to the detail property, using the value of this property as the source.
      Specified by:
      value in interface IValueProperty<S,T>
      Parameters:
      detailValue - the detail property
      Returns:
      the nested combination of the master and detail properties
    • list

      public final <E> IListProperty<S,E> list(IListProperty<? super T,E> detailList)
      Description copied from interface: IValueProperty
      Returns the nested combination of this property and the specified detail list property. List modifications made through the returned property are delegated to the detail property, using the value of the master property as the source.
      Specified by:
      list in interface IValueProperty<S,T>
      Parameters:
      detailList - the detail property
      Returns:
      the nested combination of the master value and detail list properties
    • set

      public final <E> ISetProperty<S,E> set(ISetProperty<? super T,E> detailSet)
      Description copied from interface: IValueProperty
      Returns the nested combination of this property and the specified detail set property. Set modifications made through the returned property are delegated to the detail property, using the value of the master property as the source.
      Specified by:
      set in interface IValueProperty<S,T>
      Parameters:
      detailSet - the detail property
      Returns:
      the nested combination of the master value and detail set properties
    • map

      public final <K, V> IMapProperty<S,K,V> map(IMapProperty<? super T,K,V> detailMap)
      Description copied from interface: IValueProperty
      Returns the nested combination of this property and the specified detail map property. Map modifications made through the returned property are delegated to the detail property, using the value of the master property as the source.
      Specified by:
      map in interface IValueProperty<S,T>
      Parameters:
      detailMap - the detail property
      Returns:
      the nested combination of the master value and detial map properties