test_class.file: kiji-mapreduce/src/test/java/org/kiji/mapreduce/util/TestLists.java
test_class.identifier: TestLists
test_case.body: @Test
    public void testFoldRight() {
      List<String> inputs = new ArrayList<String>();
      inputs.add("a");
      inputs.add("b");
      inputs.add("c");
  
      String stringified = Lists.foldRight(new StringBuilder(), inputs,
          new Lists.Aggregator<String, StringBuilder>() {
            @Override
            public StringBuilder eval(String in, StringBuilder out) {
              if (0 != out.length()) {
                out.append(",");
              }
  
              out.append(in);
              return out;
            }
          }).toString();
      assertEquals("c,b,a", stringified);
    }
test_case.class_method_signature: TestLists.testFoldRight()
test_case.full_signature: @Test public void testFoldRight()
test_case.identifier: testFoldRight
test_case.invocations: add add add toString foldRight length append append assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testFoldRight()
focal_class.file: kiji-mapreduce/src/main/java/org/kiji/mapreduce/util/Lists.java
focal_class.identifier: Lists
focal_class.class_method_signature: Lists.Lists()
focal_class.full_signature: private  Lists()
focal_class.identifier: Lists
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  Lists()
focal_class.class_method_signature: Lists.foldLeft(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.full_signature: public static Y foldLeft(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.identifier: foldLeft
focal_class.modifiers: public static
focal_class.parameters: (Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.return: Y
focal_class.signature: Y foldLeft(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.class_method_signature: Lists.foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.full_signature: public static Y foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.identifier: foldRight
focal_class.modifiers: public static
focal_class.parameters: (Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.return: Y
focal_class.signature: Y foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_class.class_method_signature: Lists.map(List<X> inputs, Func<? super X, ? extends Y> mapper)
focal_class.full_signature: public static List<Y> map(List<X> inputs, Func<? super X, ? extends Y> mapper)
focal_class.identifier: map
focal_class.modifiers: public static
focal_class.parameters: (List<X> inputs, Func<? super X, ? extends Y> mapper)
focal_class.return: List<Y>
focal_class.signature: List<Y> map(List<X> inputs, Func<? super X, ? extends Y> mapper)
focal_class.class_method_signature: Lists.toArray(List<X> inputs, Class<X> klazz)
focal_class.full_signature: @SuppressWarnings("unchecked") public static X[] toArray(List<X> inputs, Class<X> klazz)
focal_class.identifier: toArray
focal_class.modifiers: @SuppressWarnings("unchecked") public static
focal_class.parameters: (List<X> inputs, Class<X> klazz)
focal_class.return: X[]
focal_class.signature: X[] toArray(List<X> inputs, Class<X> klazz)
focal_class.class_method_signature: Lists.distinct(List<X> inputs)
focal_class.full_signature: public static List<X> distinct(List<X> inputs)
focal_class.identifier: distinct
focal_class.modifiers: public static
focal_class.parameters: (List<X> inputs)
focal_class.return: List<X>
focal_class.signature: List<X> distinct(List<X> inputs)
focal_method.body: public static <X, Y> Y foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op) {
      if (null == inputList || inputList.isEmpty()) {
        return initial;
      }
  
      Y next = initial;
      for (int i = inputList.size() - 1; i >= 0; i--) {
        X val = inputList.get(i);
        next = op.eval(val, next);
      }
  
      return next;
    }
focal_method.class_method_signature: Lists.foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_method.full_signature: public static Y foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_method.identifier: foldRight
focal_method.invocations: isEmpty size get eval
focal_method.modifiers: public static
focal_method.parameters: (Y initial, List<X> inputList, Aggregator<? super X, Y> op)
focal_method.return: Y
focal_method.signature: Y foldRight(Y initial, List<X> inputList, Aggregator<? super X, Y> op)