### Question:
Store { public Store<DATA> use(FuncUnit1<DATA> consumer) { if (consumer == null) return this; val value = dataRef.get(); consumer.accept(value); return this; } Store(DATA data);  Store(
            DATA data,
            Func2<DATA, Result<DATA>, ChangeResult<DATA>> accepter);  Store(
            DATA data,
            Func2<DATA, Result<DATA>, ChangeResult<DATA>>             accepter, 
            Func2<DATA, Func1<DATA, DATA>, ChangeNotAllowedException> approver); ChangeResult<DATA> change(Func1<DATA, DATA> changer); @SafeVarargs final ChangeResult<DATA> change(Func1<DATA, DATA> changer, Func1<DATA, DATA> ... moreChangers); Store<DATA> use(FuncUnit1<DATA> consumer); DATA value(); Result<DATA> extract(); @Override String toString();  }### Answer:
@Test public void testUse() { val log = new ArrayList<String>(); val store = new Store<>(0); assertEquals("Store [data=0]", store.toString()); store .change(theInteger.add(1)) .store().use (value -> log.add("" + value)); assertEquals("Store [data=1]", store.toString()); }