@SuppressWarnings("unchecked") void notifySubscriptions(@Nullable T newValue){ if (this.callbacks != null) { for (Callback<?> c : this.callbacks.toArray(new Callback<?>[0])) { try { ((Callback<T>) c).call(newValue); } catch(Throwable t) { this.logger.error("Failed while executing callback", t); //$NON-NLS-1$ } } } }
@SuppressWarnings("unchecked") void setCurrentValue(@Nullable T o) { this.value = o; if (this.callbacks != null) { for (Callback<?> c : this.callbacks.toArray(new Callback<?>[0])) { try { ((Callback<T>) c).call(o); } catch (Throwable t) { this.logger.error("Failed while executing callback", t); //$NON-NLS-1$ } } } }
@PreDestroy void dispose() { List<Callback<Void>> disposalCallbacks = this.disposalCallbacks; if (disposalCallbacks != null) { for (Callback<?> callback : disposalCallbacks.toArray(new Callback<?>[0])) { try { callback.call(null); } catch(Throwable t) { this.logger.error("Failure while executing clean up callback", t); //$NON-NLS-1$ } } disposalCallbacks.clear(); } if (this.callbacks != null) { this.callbacks.clear(); } }
@Override public void call(final T value) { if (Platform.isFxApplicationThread()) { callback.call(value); } else { Platform.runLater(new Runnable() { @Override public void run() { callback.call(value); } }); } } };
@PreDestroy void dispose() { List<Callback<Void>> disposalCallbacks = this.disposalCallbacks; if (disposalCallbacks != null) { for (Callback<?> callback : disposalCallbacks.toArray(new Callback<?>[0])) { try { callback.call(null); } catch (Throwable t) { this.logger.error("Failure while executing clean up callback", t); //$NON-NLS-1$ } } disposalCallbacks.clear(); } if (this.callbacks != null) { this.callbacks.clear(); } this.value = null; cleanupListener(this.instancePreference); cleanupListener(this.configurationPreference); cleanupListener(this.defaultPreference); this.instancePreference = null; this.configurationPreference = null; this.defaultPreference = null; this.listener = null; }