@Override public <V> V valueOf(Property<? super T, V> property, V defaultValue) { return valueOf(property, new SameValueDonor<>(defaultValue)); }
public static <T,V> PropertyValue<T,V> withNull(Property<T,V> property) { return new PropertyValue<>(property, new SameValueDonor<V>(null)); }
/** * The property's value */ public V value() { return valueDonor.value(); } }
public static void howToMakeSimpleObjects() { Maker<Apple> appleWith2Leaves = an(Apple, with(2, leaves)); Maker<Apple> ripeApple = appleWith2Leaves.but(with(ripeness, 0.9)); Maker<Apple> unripeApple = appleWith2Leaves.but(with(ripeness, 0.125)); Apple apple1 = make(ripeApple); Apple apple2 = make(unripeApple); Banana defaultBanana = make(a(Banana)); Banana straightBanana = make(a(Banana, with(curve, 0.0))); Banana squishyBanana = make(a(Banana, with(ripeness, 1.0))); }
public static <T> Donor<T> theSame(Donor<T> originalDonor) { return new SameValueDonor<>(originalDonor.value()); }
@Override public ThingContainer instantiate(PropertyLookup<ThingContainer> lookup) { return new ThingContainer(lookup.valueOf(thing, make(a(ThingToMake)))); } };
public static <T,V> Property<T,V> newProperty() { return new Property<>(); } }
/** * Makes a new object. * * The {@link com.natpryce.makeiteasy.MakeItEasy#make(Maker) MakeItEasy.make} method * is syntactic sugar to make calls to this method read more naturally in most * contexts. * * @return a new object */ public T make() { return instantiator.instantiate(this); }
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> Donor<T> theSame(Donor<T> originalDonor) { return new SameValueDonor<>(originalDonor.value()); }
@Override public <V> V valueOf(Property<? super T, V> property, V defaultValue) { return valueOf(property, new SameValueDonor<>(defaultValue)); }
/** * The property's value */ public V value() { return valueDonor.value(); } }
public static <T,V> Property<T,V> newProperty() { return new Property<>(); } }
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)); }
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)); }