@Override public void addDataObserver(ServiceTempus serviceTempus, Observer<D> observer) { unitDataObservableMap.get(serviceTempus).addObserver(observer); }
@Override public void removeDataObserver(ServiceTempus serviceTempus, Observer<D> observer) { unitDataObservableMap.get(serviceTempus).removeObserver(observer); }
public UnitDataFilteredObservable(final DataProvider<M> dataProvider, final ServiceTempus serviceTempus, final UnitTemplate unitTemplate) { super(dataProvider); this.unit = dataProvider; this.serviceTempus = serviceTempus; this.setHashGenerator((M value) -> removeUnwantedServiceTempus(value.toBuilder()).build().hashCode()); this.fieldsToKeep = new HashSet<>(); this.unitTemplate = unitTemplate; if (unitTemplate != null) { updateFieldsToKeep(); } }
public AbstractUnitController(final Class unitClass, final DB builder) throws InstantiationException { super(builder); this.serviceList = new ArrayList<>(); this.unitDataObservableMap = new HashMap<>(); this.serviceTempusServiceTypeObservableMap = new HashMap<>(); for (final ServiceTempus serviceTempus : ServiceTempus.values()) { unitDataObservableMap.put(serviceTempus, new UnitDataFilteredObservable<>(this, serviceTempus)); super.addDataObserver((Observable<D> source, D data) -> { unitDataObservableMap.get(serviceTempus).notifyObservers(data); }); serviceTempusServiceTypeObservableMap.put(serviceTempus, new HashMap<>()); } this.unitRegistryObserver = new Observer<UnitRegistryData>() { @Override public void update(Observable<UnitRegistryData> source, UnitRegistryData data) throws Exception { try { final UnitConfig newUnitConfig = Registries.getUnitRegistry(true).getUnitConfigById(getId()); if (!newUnitConfig.equals(getConfig())) { applyConfigUpdate(newUnitConfig); } } catch (NotAvailableException ex) { // unit config has been removed, probably because of deletion and a higher controller will do the shutdown in this case logger.debug("Could not update unit controller", ex); } catch (CouldNotPerformException ex) { ExceptionPrinter.printHistory("Could not update unit config of " + this, ex, logger); } } }; }
@Override public void shutdown() { super.shutdown(); try { // shutdown registry observer Registries.getUnitRegistry().removeDataObserver(unitRegistryObserver); } catch (final NotAvailableException ex) { // if the registry is not any longer available (in case of registry shutdown) than the observer is already cleared. } catch (final Exception ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not remove unit registry observer.", ex), logger); } // shutdown service observer for (final ServiceTempus serviceTempus : ServiceTempus.values()) { for (final MessageObservable serviceObservable : serviceTempusServiceTypeObservableMap.get(serviceTempus).values()) { serviceObservable.shutdown(); } unitDataObservableMap.get(serviceTempus).shutdown(); } }
unitDataObservableMap.get(serviceTempus).updateToUnitTemplateChange(template);
public void updateToUnitTemplateChange(UnitTemplate unitTemplate) { this.unitTemplate = unitTemplate; updateFieldsToKeep(); }
this.serviceTempusServiceTypeObservableMap = new HashMap<>(); for (ServiceTempus serviceTempus : ServiceTempus.values()) { this.unitDataObservableMap.put(serviceTempus, new UnitDataFilteredObservable<>(this, serviceTempus)); super.addDataObserver((Observable<D> source, D data1) -> { unitDataObservableMap.get(serviceTempus).notifyObservers(data1); });
@Override public void shutdown() { super.shutdown(); try { // shutdown registry observer Registries.getUnitRegistry().removeDataObserver(unitRegistryObserver); } catch (final NotAvailableException ex) { // if the registry is not any longer available (in case of registry shutdown) than the observer is already cleared } catch (final Exception ex) { ExceptionPrinter.printHistory(new CouldNotPerformException("Could not remove unit registry observer.", ex), logger); } for (final ServiceTempus serviceTempus : ServiceTempus.values()) { // shutdown service observer for (final MessageObservable serviceObservable : serviceTempusServiceTypeObservableMap.get(serviceTempus).values()) { serviceObservable.shutdown(); } unitDataObservableMap.get(serviceTempus).shutdown(); } }
unitDataObservableMap.get(serviceTempus).updateToUnitTemplateChange(template);
@Override public void removeDataObserver(ServiceTempus serviceTempus, Observer<D> observer) { unitDataObservableMap.get(serviceTempus).removeObserver(observer); } }
@Override public void addDataObserver(ServiceTempus serviceTempus, Observer<D> observer) { unitDataObservableMap.get(serviceTempus).addObserver(observer); }