예제 #1
0
 @Override
 public Document increment(CharSequence name, Value increment) {
   if (!increment.isNumber())
     throw new IllegalArgumentException("The increment must be a number but is " + increment);
   if (fields.containsKey(name)) {
     Number current = getNumber(name);
     if (current != null) {
       Value updated = Value.create(MathOps.add(current, increment.asNumber()));
       setValue(name, Value.create(updated));
     }
   } else {
     setValue(name, increment);
   }
   return this;
 }
예제 #2
0
  @Test
  public void testAsSetAction() throws Exception {
    final Value<String> value = Value.create("1");
    assertEquals(value.get(), "1");
    TestSubscriber<String> testSubscriber = new TestSubscriber<>();
    Subscription subscribe = value.asObservable().subscribe(testSubscriber);

    value.asSetAction().call("2");

    testSubscriber.assertValueCount(2);
    testSubscriber.assertValues("1", "2");
  }
예제 #3
0
 @Override
 public Value remove(CharSequence name) {
   if (!fields.containsKey(name)) return null;
   Comparable<?> removedValue = fields.remove(name);
   return Value.create(removedValue);
 }
예제 #4
0
 @Override
 public Value get(CharSequence fieldName, Comparable<?> defaultValue) {
   Value value = fields.get(fieldName);
   return value != null ? value : Value.create(defaultValue);
 }