@Override public void dispose() { super.dispose(); if (this.listener != null) { for (VersionCompatibilityService service : this.services) { service.detach(this.listener); } } }
@Override protected Data compute() { VersionCompatibilityService.Data data = null; for (VersionCompatibilityService service : this.services) { data = service.data(); if (service.compatible() == false) { break; } } return data; }
@Override protected final void initDataService() { this.services = context(Property.class).services(VersionCompatibilityService.class); this.listener = new Listener() { @Override public void handle(final Event event) { refresh(); } }; for (VersionCompatibilityService service : this.services) { service.attach(this.listener); } }