public static <T,V,W extends V> PropertyValue<T,V> with(Property<T,V> property, W value) { return new PropertyValue<>(property, new SameValueDonor<V>(value)); }
public static <T,V> PropertyValue<T,V> withNull(Property<T,V> property) { return new PropertyValue<>(property, new SameValueDonor<V>(null)); }
public static <T,V,W extends V> PropertyValue<T,V> with(W value, Property<T,V> property) { return new PropertyValue<>(property, new SameValueDonor<V>(value)); }
public static <T,V,W extends V> PropertyValue<T,V> with(Property<T,V> property, W value) { return new PropertyValue<>(property, new SameValueDonor<V>(value)); }
public static <T,V,W extends V> PropertyValue<T,V> with(W value, Property<T,V> property) { return new PropertyValue<>(property, new SameValueDonor<V>(value)); }
public static <T,V> PropertyValue<T,V> withNull(Property<T,V> property) { return new PropertyValue<>(property, new SameValueDonor<V>(null)); }
@Override public <V> V valueOf(Property<? super T, V> property, V defaultValue) { return valueOf(property, new SameValueDonor<>(defaultValue)); }
@Override public <V> V valueOf(Property<? super T, V> property, V defaultValue) { return valueOf(property, new SameValueDonor<>(defaultValue)); }
public static <T> Donor<T> theSame(Donor<T> originalDonor) { return new SameValueDonor<>(originalDonor.value()); }
public static <T> Donor<T> theSame(Donor<T> originalDonor) { return new SameValueDonor<>(originalDonor.value()); }