test_class.file: api/src/test/java/edu/wpi/first/shuffleboard/api/properties/AsyncPropertyTest.java
test_class.identifier: AsyncPropertyTest
test_class.superclass: extends ApplicationTest
test_case.body: @Test
    public void removeListenerTest() {
      AsyncProperty<String> asyncProperty = new AsyncProperty<>();
      CompletableFuture<Boolean> listenerFired = new CompletableFuture<>();
      ChangeListener<String> listener = (observable, oldValue, newValue) -> listenerFired.complete(true);
  
      asyncProperty.addListener(listener);
      asyncProperty.removeListener(listener);
      asyncProperty.set("Value");
      WaitForAsyncUtils.waitForFxEvents();
  
      assertThrows(TimeoutException.class, () -> listenerFired.get(1, TimeUnit.SECONDS));
    }
test_case.class_method_signature: AsyncPropertyTest.removeListenerTest()
test_case.full_signature: @Test public void removeListenerTest()
test_case.identifier: removeListenerTest
test_case.invocations: complete addListener removeListener set waitForFxEvents assertThrows get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void removeListenerTest()
focal_class.declarator: holder = new AtomicReference<>(null)
focal_class.modifier: private final
focal_class.original_string: private final AtomicReference<T> holder = new AtomicReference<>(null);
focal_class.type: AtomicReference<T>
focal_class.var_name: holder
focal_class.declarator: delegate
focal_class.modifier: private final
focal_class.original_string: private final AtomicPropertyListenerDelegate<T> delegate;
focal_class.type: AtomicPropertyListenerDelegate<T>
focal_class.var_name: delegate
focal_class.declarator: bean
focal_class.modifier: private final
focal_class.original_string: private final Object bean;
focal_class.type: Object
focal_class.var_name: bean
focal_class.declarator: name
focal_class.modifier: private final
focal_class.original_string: private final String name;
focal_class.type: String
focal_class.var_name: name
focal_class.file: api/src/main/java/edu/wpi/first/shuffleboard/api/properties/AsyncProperty.java
focal_class.identifier: AsyncProperty
focal_class.interfaces: implements AtomicProperty<T>
focal_class.class_method_signature: AsyncProperty.AsyncProperty()
focal_class.full_signature: public  AsyncProperty()
focal_class.identifier: AsyncProperty
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  AsyncProperty()
focal_class.class_method_signature: AsyncProperty.AsyncProperty(T initialValue)
focal_class.full_signature: public  AsyncProperty(T initialValue)
focal_class.identifier: AsyncProperty
focal_class.modifiers: public
focal_class.parameters: (T initialValue)
focal_class.signature:  AsyncProperty(T initialValue)
focal_class.class_method_signature: AsyncProperty.AsyncProperty(Object bean, String name)
focal_class.full_signature: public  AsyncProperty(Object bean, String name)
focal_class.identifier: AsyncProperty
focal_class.modifiers: public
focal_class.parameters: (Object bean, String name)
focal_class.signature:  AsyncProperty(Object bean, String name)
focal_class.class_method_signature: AsyncProperty.AsyncProperty(Object bean, String name, T initialValue)
focal_class.full_signature: @SuppressWarnings("JavadocMethod") public  AsyncProperty(Object bean, String name, T initialValue)
focal_class.identifier: AsyncProperty
focal_class.modifiers: @SuppressWarnings("JavadocMethod") public
focal_class.parameters: (Object bean, String name, T initialValue)
focal_class.signature:  AsyncProperty(Object bean, String name, T initialValue)
focal_class.class_method_signature: AsyncProperty.bind(ObservableValue<? extends T> observable)
focal_class.full_signature: @Override public void bind(ObservableValue<? extends T> observable)
focal_class.identifier: bind
focal_class.modifiers: @Override public
focal_class.parameters: (ObservableValue<? extends T> observable)
focal_class.return: void
focal_class.signature: void bind(ObservableValue<? extends T> observable)
focal_class.class_method_signature: AsyncProperty.unbind()
focal_class.full_signature: @Override public void unbind()
focal_class.identifier: unbind
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void unbind()
focal_class.class_method_signature: AsyncProperty.isBound()
focal_class.full_signature: @Override public boolean isBound()
focal_class.identifier: isBound
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: boolean
focal_class.signature: boolean isBound()
focal_class.class_method_signature: AsyncProperty.getBean()
focal_class.full_signature: @Override public Object getBean()
focal_class.identifier: getBean
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Object
focal_class.signature: Object getBean()
focal_class.class_method_signature: AsyncProperty.getName()
focal_class.full_signature: @Override public String getName()
focal_class.identifier: getName
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getName()
focal_class.class_method_signature: AsyncProperty.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: AsyncProperty.set(T newValue)
focal_class.full_signature: @Override public void set(T newValue)
focal_class.identifier: set
focal_class.modifiers: @Override public
focal_class.parameters: (T newValue)
focal_class.return: void
focal_class.signature: void set(T newValue)
focal_class.class_method_signature: AsyncProperty.setValue(T v)
focal_class.full_signature: @Override public void setValue(T v)
focal_class.identifier: setValue
focal_class.modifiers: @Override public
focal_class.parameters: (T v)
focal_class.return: void
focal_class.signature: void setValue(T v)
focal_class.class_method_signature: AsyncProperty.addImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.full_signature: @Override public void addImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.identifier: addImmediateListener
focal_class.modifiers: @Override public
focal_class.parameters: (ImmediateChangeListener<? super T> listener)
focal_class.return: void
focal_class.signature: void addImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.class_method_signature: AsyncProperty.removeImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.full_signature: @Override public void removeImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.identifier: removeImmediateListener
focal_class.modifiers: @Override public
focal_class.parameters: (ImmediateChangeListener<? super T> listener)
focal_class.return: void
focal_class.signature: void removeImmediateListener(ImmediateChangeListener<? super T> listener)
focal_class.class_method_signature: AsyncProperty.addListener(ChangeListener<? super T> listener)
focal_class.full_signature: @Override public void addListener(ChangeListener<? super T> listener)
focal_class.identifier: addListener
focal_class.modifiers: @Override public
focal_class.parameters: (ChangeListener<? super T> listener)
focal_class.return: void
focal_class.signature: void addListener(ChangeListener<? super T> listener)
focal_class.class_method_signature: AsyncProperty.removeListener(ChangeListener<? super T> listener)
focal_class.full_signature: @Override public void removeListener(ChangeListener<? super T> listener)
focal_class.identifier: removeListener
focal_class.modifiers: @Override public
focal_class.parameters: (ChangeListener<? super T> listener)
focal_class.return: void
focal_class.signature: void removeListener(ChangeListener<? super T> listener)
focal_class.class_method_signature: AsyncProperty.removeListener(InvalidationListener listener)
focal_class.full_signature: @Override public void removeListener(InvalidationListener listener)
focal_class.identifier: removeListener
focal_class.modifiers: @Override public
focal_class.parameters: (InvalidationListener listener)
focal_class.return: void
focal_class.signature: void removeListener(InvalidationListener listener)
focal_class.class_method_signature: AsyncProperty.addListener(InvalidationListener listener)
focal_class.full_signature: @Override public void addListener(InvalidationListener listener)
focal_class.identifier: addListener
focal_class.modifiers: @Override public
focal_class.parameters: (InvalidationListener listener)
focal_class.return: void
focal_class.signature: void addListener(InvalidationListener listener)
focal_class.superclass: extends ObjectProperty<T>
focal_method.body: @Override
    public void removeListener(ChangeListener<? super T> listener) {
      delegate.removeChangeListener(listener);
    }
focal_method.class_method_signature: AsyncProperty.removeListener(ChangeListener<? super T> listener)
focal_method.full_signature: @Override public void removeListener(ChangeListener<? super T> listener)
focal_method.identifier: removeListener
focal_method.invocations: removeChangeListener
focal_method.modifiers: @Override public
focal_method.parameters: (ChangeListener<? super T> listener)
focal_method.return: void
focal_method.signature: void removeListener(ChangeListener<? super T> listener)