test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/util/LazyInitTest.java
test_class.identifier: LazyInitTest
test_case.body: @Test
    public void testNullInitializer() {
      assertThrows(NullPointerException.class, () -> LazyInit.of(null), "Null initializer should throw");
    }
test_case.class_method_signature: LazyInitTest.testNullInitializer()
test_case.full_signature: @Test public void testNullInitializer()
test_case.identifier: testNullInitializer
test_case.invocations: assertThrows of
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testNullInitializer()
focal_class.declarator: lock = new ReentrantLock()
focal_class.modifier: private final
focal_class.original_string: private final Lock lock = new ReentrantLock();
focal_class.type: Lock
focal_class.var_name: lock
focal_class.declarator: initialized = false
focal_class.modifier: private
focal_class.original_string: private boolean initialized = false;
focal_class.type: boolean
focal_class.var_name: initialized
focal_class.declarator: value = null
focal_class.modifier: private
focal_class.original_string: private T value = null;
focal_class.type: T
focal_class.var_name: value
focal_class.declarator: initializer
focal_class.modifier: private final
focal_class.original_string: private final Callable<? extends T> initializer;
focal_class.type: Callable<? extends T>
focal_class.var_name: initializer
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/util/LazyInit.java
focal_class.identifier: LazyInit
focal_class.interfaces: implements Supplier<T>
focal_class.class_method_signature: LazyInit.LazyInit(Callable<? extends T> initializer)
focal_class.full_signature: public  LazyInit(Callable<? extends T> initializer)
focal_class.identifier: LazyInit
focal_class.modifiers: public
focal_class.parameters: (Callable<? extends T> initializer)
focal_class.signature:  LazyInit(Callable<? extends T> initializer)
focal_class.class_method_signature: LazyInit.of(Callable<? extends T> initializer)
focal_class.full_signature: public static LazyInit<T> of(Callable<? extends T> initializer)
focal_class.identifier: of
focal_class.modifiers: public static
focal_class.parameters: (Callable<? extends T> initializer)
focal_class.return: LazyInit<T>
focal_class.signature: LazyInit<T> of(Callable<? extends T> initializer)
focal_class.class_method_signature: LazyInit.get()
focal_class.full_signature: @Override public T get()
focal_class.identifier: get
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: T
focal_class.signature: T get()
focal_class.class_method_signature: LazyInit.hasValue()
focal_class.full_signature: public boolean hasValue()
focal_class.identifier: hasValue
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean hasValue()
focal_class.class_method_signature: LazyInit.clear()
focal_class.full_signature: public void clear()
focal_class.identifier: clear
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void clear()
focal_method.body: public static <T> LazyInit<T> of(Callable<? extends T> initializer) {
      return new LazyInit<>(initializer);
    }
focal_method.class_method_signature: LazyInit.of(Callable<? extends T> initializer)
focal_method.full_signature: public static LazyInit<T> of(Callable<? extends T> initializer)
focal_method.identifier: of
focal_method.modifiers: public static
focal_method.parameters: (Callable<? extends T> initializer)
focal_method.return: LazyInit<T>
focal_method.signature: LazyInit<T> of(Callable<? extends T> initializer)