@Test public void backwardStartReverseCalled() throws InterruptedException { MyProps pt = new MyProps(); TimingTarget tt = PropertySetter.getTarget(pt, "value", 1, 50); ValueTarget vt = new ValueTarget(pt); TimingSource ts = new ScheduledExecutorTimingSource(); ts.init(); Animator a = new Animator.Builder(ts).addTarget(tt).addTarget(vt).setStartDirection(Direction.BACKWARD).build(); pt.setValue(-999); a.startReverse(); a.await(); ts.dispose(); Assert.assertEquals(1, vt.valueAtBegin); Assert.assertSame(vt.startDirectionAtBegin, Direction.BACKWARD); Assert.assertSame(vt.currentDirectionAtBegin, Direction.FORWARD); Assert.assertTrue(vt.valueAtFirstTimingEvent < 4); Assert.assertSame(vt.currentDirectionAtFirstTimingEvent, Direction.FORWARD); Assert.assertEquals(50, pt.getValue()); }
public static <T> TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames) { return getTargetHelper(object, propertyName, keyFrames, false); }
PropertySetter { public static <T> TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames) { return getTargetHelper(object, propertyName, keyFrames, false); } }
PropertySetter { public static <T> TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames) { return getTargetHelper(object, propertyName, keyFrames, false); } private  PropertySetter(); }
PropertySetter { public static <T> TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames) { return getTargetHelper(object, propertyName, keyFrames, false); } private  PropertySetter(); static TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames); static TimingTargetAdapter getTarget(Object object, String propertyName, T... values); static TimingTargetAdapter getTarget(Object object, String propertyName, Interpolator interpolator, T... values); static TimingTargetAdapter getTargetTo(Object object, String propertyName, KeyFrames<T> keyFrames); static TimingTargetAdapter getTargetTo(Object object, String propertyName, T... values); static TimingTargetAdapter getTargetTo(Object object, String propertyName, Interpolator interpolator, T... values); }
PropertySetter { public static <T> TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames) { return getTargetHelper(object, propertyName, keyFrames, false); } private  PropertySetter(); static TimingTargetAdapter getTarget(Object object, String propertyName, KeyFrames<T> keyFrames); static TimingTargetAdapter getTarget(Object object, String propertyName, T... values); static TimingTargetAdapter getTarget(Object object, String propertyName, Interpolator interpolator, T... values); static TimingTargetAdapter getTargetTo(Object object, String propertyName, KeyFrames<T> keyFrames); static TimingTargetAdapter getTargetTo(Object object, String propertyName, T... values); static TimingTargetAdapter getTargetTo(Object object, String propertyName, Interpolator interpolator, T... values);  }