test_class.declarator: writer
test_class.original_string: MultiDataWriter<String> writer;
test_class.type: MultiDataWriter<String>
test_class.var_name: writer
test_class.declarator: empty
test_class.original_string: MultiDataWriter<String> empty;
test_class.type: MultiDataWriter<String>
test_class.var_name: empty
test_class.declarator: dataWriter1
test_class.modifier: private
test_class.original_string: private DummyDataWriter dataWriter1;
test_class.type: DummyDataWriter
test_class.var_name: dataWriter1
test_class.declarator: dataWriter2
test_class.modifier: private
test_class.original_string: private DummyDataWriter dataWriter2;
test_class.type: DummyDataWriter
test_class.var_name: dataWriter2
test_class.file: micro-async-data-writer/src/test/java/com/oath/micro/server/async/data/writer/MultiDataWriterTest.java
test_class.identifier: MultiDataWriterTest
test_case.body: @Test
      public void isOutofDateWorksEmpty() {
  
          boolean outofdate = empty.isOutOfDate()
                                   .orElse(null);
          assertThat(outofdate, equalTo(false));
      }
test_case.class_method_signature: MultiDataWriterTest.isOutofDateWorksEmpty()
test_case.full_signature: @Test public void isOutofDateWorksEmpty()
test_case.identifier: isOutofDateWorksEmpty
test_case.invocations: orElse isOutOfDate assertThat equalTo
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void isOutofDateWorksEmpty()
focal_class.declarator: comparators
focal_class.modifier: private final
focal_class.original_string: private final ListX<DataWriter<T>> comparators;
focal_class.type: ListX<DataWriter<T>>
focal_class.var_name: comparators
focal_class.file: micro-async-data-writer/src/main/java/com/oath/micro/server/async/data/writer/MultiDataWriter.java
focal_class.identifier: MultiDataWriter
focal_class.interfaces: implements DataWriter<T>
focal_class.class_method_signature: MultiDataWriter.loadAndGet()
focal_class.full_signature: @Override public Future<T> loadAndGet()
focal_class.identifier: loadAndGet
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Future<T>
focal_class.signature: Future<T> loadAndGet()
focal_class.class_method_signature: MultiDataWriter.saveAndIncrement(T data)
focal_class.full_signature: @Override public Future<Void> saveAndIncrement(T data)
focal_class.identifier: saveAndIncrement
focal_class.modifiers: @Override public
focal_class.parameters: (T data)
focal_class.return: Future<Void>
focal_class.signature: Future<Void> saveAndIncrement(T data)
focal_class.class_method_signature: MultiDataWriter.isOutOfDate()
focal_class.full_signature: @Override public Future<Boolean> isOutOfDate()
focal_class.identifier: isOutOfDate
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Future<Boolean>
focal_class.signature: Future<Boolean> isOutOfDate()
focal_method.body: @Override
      public Future<Boolean> isOutOfDate() {
          return comparators.map(c -> c.isOutOfDate())
                            .foldLeft((acc, next) -> acc.zip(next, (v1, v2) -> v1 || v2))
                            .orElse(Future.ofResult(false));
      }
focal_method.class_method_signature: MultiDataWriter.isOutOfDate()
focal_method.full_signature: @Override public Future<Boolean> isOutOfDate()
focal_method.identifier: isOutOfDate
focal_method.invocations: orElse foldLeft map isOutOfDate zip ofResult
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: Future<Boolean>
focal_method.signature: Future<Boolean> isOutOfDate()