@Override public void accept(final Boolean t) { set(t); }
@Override public Mutable<T1> set(final T1 value) { host.set(fn.apply(value)); return this; }
/** * @param varFn New value * @return this object with mutated value */ public MutableBoolean mutate(final BooleanFunction varFn) { return set(varFn.apply(getAsBoolean())); }
@Test public void inClosure(){ MutableBoolean myInt = new MutableBoolean(zero); Function<Integer,Function<Integer,MutableBoolean>> fn = ( (Integer i)-> (Integer j)-> myInt.set(true)); fn.apply(10).apply(20); assertThat(myInt.getAsBoolean(), is(true)); } @Test
@Test public void inClosure2(){ MutableBoolean myInt = new MutableBoolean(zero); BiFunction<Boolean,Boolean,MutableBoolean> fn = (i,j)-> myInt.set(true); fn.apply(trueB,falseB); assertThat(myInt.getAsBoolean(), is(true)); }
@Test public void externalSet(){ value = false; MutableBoolean ext = MutableBoolean.fromExternal(()->value,v->this.value=v); ext.set(false); assertThat(value,equalTo(false)); }
@Test public void testSet() { assertThat(new MutableBoolean().set(falseB).getAsBoolean(),is(falseB)); }
@Override public void accept(final Boolean t) { set(t); }
@Override public Mutable<T1> set(final T1 value) { host.set(fn.apply(value)); return this; }
/** * @param varFn New value * @return this object with mutated value */ public MutableBoolean mutate(final BooleanFunction varFn) { return set(varFn.apply(getAsBoolean())); }