test_class.declarator: foo = "foo"
test_class.modifier: private static final
test_class.original_string: private static final String foo = "foo";
test_class.type: String
test_class.var_name: foo
test_class.declarator: bar = "bar"
test_class.modifier: private static final
test_class.original_string: private static final String bar = "bar";
test_class.type: String
test_class.var_name: bar
test_class.declarator: barSupplier = () -> bar
test_class.modifier: private static final
test_class.original_string: private static final Supplier<String> barSupplier = () -> bar;
test_class.type: Supplier<String>
test_class.var_name: barSupplier
test_class.declarator: nullSupplier = () -> null
test_class.modifier: private static final
test_class.original_string: private static final Supplier<String> nullSupplier = () -> null;
test_class.type: Supplier<String>
test_class.var_name: nullSupplier
test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/util/ListUtilsTest.java
test_class.identifier: ListUtilsTest
test_class.superclass: extends UtilityClassTest<ListUtils>
test_case.body: @Test
    public void testJoiningNoSeparatorsNoBookends() {
      List<String> list = Arrays.asList(foo, bar);
      List<String> result = list.stream().collect(joining(nullSupplier, nullSupplier, nullSupplier));
      assertEquals(list, result);
    }
test_case.class_method_signature: ListUtilsTest.testJoiningNoSeparatorsNoBookends()
test_case.full_signature: @Test public void testJoiningNoSeparatorsNoBookends()
test_case.identifier: testJoiningNoSeparatorsNoBookends
test_case.invocations: asList collect stream joining assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testJoiningNoSeparatorsNoBookends()
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/util/ListUtils.java
focal_class.identifier: ListUtils
focal_class.class_method_signature: ListUtils.ListUtils()
focal_class.full_signature: private  ListUtils()
focal_class.identifier: ListUtils
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  ListUtils()
focal_class.class_method_signature: ListUtils.firstIndexOf(List<? extends T> list, Predicate<? super T> predicate)
focal_class.full_signature: public static int firstIndexOf(List<? extends T> list, Predicate<? super T> predicate)
focal_class.identifier: firstIndexOf
focal_class.modifiers: public static
focal_class.parameters: (List<? extends T> list, Predicate<? super T> predicate)
focal_class.return: int
focal_class.signature: int firstIndexOf(List<? extends T> list, Predicate<? super T> predicate)
focal_class.class_method_signature: ListUtils.addIfNotPresent(List<? super T> list, T element)
focal_class.full_signature: public static boolean addIfNotPresent(List<? super T> list, T element)
focal_class.identifier: addIfNotPresent
focal_class.modifiers: public static
focal_class.parameters: (List<? super T> list, T element)
focal_class.return: boolean
focal_class.signature: boolean addIfNotPresent(List<? super T> list, T element)
focal_class.class_method_signature: ListUtils.addIfNotPresent(List<? super T> list, int index, T element)
focal_class.full_signature: public static boolean addIfNotPresent(List<? super T> list, int index, T element)
focal_class.identifier: addIfNotPresent
focal_class.modifiers: public static
focal_class.parameters: (List<? super T> list, int index, T element)
focal_class.return: boolean
focal_class.signature: boolean addIfNotPresent(List<? super T> list, int index, T element)
focal_class.class_method_signature: ListUtils.toImmutableList()
focal_class.full_signature: public static Collector<T, ?, ImmutableList<T>> toImmutableList()
focal_class.identifier: toImmutableList
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: Collector<T, ?, ImmutableList<T>>
focal_class.signature: Collector<T, ?, ImmutableList<T>> toImmutableList()
focal_class.class_method_signature: ListUtils.joining(Supplier<? extends T> separator)
focal_class.full_signature: public static Collector<T, ?, List<T>> joining(Supplier<? extends T> separator)
focal_class.identifier: joining
focal_class.modifiers: public static
focal_class.parameters: (Supplier<? extends T> separator)
focal_class.return: Collector<T, ?, List<T>>
focal_class.signature: Collector<T, ?, List<T>> joining(Supplier<? extends T> separator)
focal_class.class_method_signature: ListUtils.joining(Supplier<? extends T> prefix,
                                                       Supplier<? extends T> separator,
                                                       Supplier<? extends T> suffix)
focal_class.full_signature: public static Collector<T, ?, List<T>> joining(Supplier<? extends T> prefix,
                                                       Supplier<? extends T> separator,
                                                       Supplier<? extends T> suffix)
focal_class.identifier: joining
focal_class.modifiers: public static
focal_class.parameters: (Supplier<? extends T> prefix,
                                                       Supplier<? extends T> separator,
                                                       Supplier<? extends T> suffix)
focal_class.return: Collector<T, ?, List<T>>
focal_class.signature: Collector<T, ?, List<T>> joining(Supplier<? extends T> prefix,
                                                       Supplier<? extends T> separator,
                                                       Supplier<? extends T> suffix)
focal_class.class_method_signature: ListUtils.replaceIn(List<T> list)
focal_class.full_signature: public static Replacement<T> replaceIn(List<T> list)
focal_class.identifier: replaceIn
focal_class.modifiers: public static
focal_class.parameters: (List<T> list)
focal_class.return: Replacement<T>
focal_class.signature: Replacement<T> replaceIn(List<T> list)
focal_method.body: public static <T> Collector<T, ?, List<T>> joining(Supplier<? extends T> separator) {
      return joining(() -> null, separator, () -> null);
    }
focal_method.class_method_signature: ListUtils.joining(Supplier<? extends T> separator)
focal_method.full_signature: public static Collector<T, ?, List<T>> joining(Supplier<? extends T> separator)
focal_method.identifier: joining
focal_method.invocations: joining
focal_method.modifiers: public static
focal_method.parameters: (Supplier<? extends T> separator)
focal_method.return: Collector<T, ?, List<T>>
focal_method.signature: Collector<T, ?, List<T>> joining(Supplier<? extends T> separator)