@Override public void delete(BeanId beanId) { Preconditions.checkNotNull(beanId); doLookup(); Bean bean = beanManager.delete(beanId); core.setSchema(schemaManager.getSchemas(), Arrays.asList(bean)); notificationManager.fireDelete(Lists.newArrayList(bean)); core.cacheRemove(beanId); }
@Override public void registerObserver(Object observer) { doLookup(); notificationManager.register(new Observer(observer)); }
@Override public void set(Collection<Bean> beans) { if (beans == null || beans.isEmpty()) { return; } doLookup(); core.setSchema(schemaManager.getSchemas(), beans); validateSchema(beans); if (validator.isPresent()) { initReferences(beans); validateSet(beans); } beanManager.set(beans); notificationManager.fireUpdated(beans); core.cache(beans); }
@Override public void create(Collection<Bean> beans) { if (beans == null || beans.isEmpty()) { return; } doLookup(); core.setSchema(schemaManager.getSchemas(), beans); validateSchema(beans); if (validator.isPresent()) { initReferences(beans); validator.get().validate(beans); } beanManager.create(beans); notificationManager.fireCreate(beans); core.cache(beans); }
@Override public void merge(Collection<Bean> beans) { if (beans == null || beans.isEmpty()) { return; } doLookup(); core.setSchema(schemaManager.getSchemas(), beans); validateSchema(beans); // ok to not have validation manager available if (validator.isPresent()) { validateMerge(beans); } beanManager.merge(beans); notificationManager.fireUpdated(beans); for (Bean bean : beans) { // must refresh the bean from storage since it is merged. Optional<Bean> refreshed = beanManager.getEager(bean.getId()); if (refreshed.isPresent()) { core.cache(refreshed.get()); } } }
private void doLookup() { // core would already be injected in a cdi environment if (core == null) { core = new ConfigCore(); } if (cacheManager == null) { cacheManager = core.lookupCacheManager(); notificationManager.register(new Observer(cacheManager)); } if (validator == null) { ClassLoader cl = Thread.currentThread().getContextClassLoader(); try { cl.loadClass(JSR303_1_0_CLASSNAME); validator = Optional.of(new Jsr303Validator()); } catch (Exception e) { validator = Optional.absent(); } } }
@Override public void delete(String name, Collection<String> instances) { Preconditions.checkNotNull(name); if (instances == null || instances.isEmpty()) { return; } doLookup(); Collection<Bean> beans = beanManager.delete(name, instances); core.setSchema(schemaManager.getSchemas(), beans); notificationManager.fireDelete(beans); core.cacheRemove(name, instances); }
public void doLookup() { // core would already be injected in a cdi environment if (core == null) { core = new ConfigCore(); } if (conversion == null) { conversion = Conversion.get(); conversion.register(new ObjectToBeanConverter()); conversion.register(new ClassToSchemaConverter()); conversion.register(new FieldToSchemaPropertyConverter()); conversion.register(new BeanToObjectConverter()); } schemaManager = lookup.lookup(SchemaManager.class, DefaultSchemaManager.class); beanManager = lookup.lookup(BeanManager.class, DefaultBeanManager.class); notificationManager = lookup.lookup(NotificationManager.class, DefaultNotificationManager.class); if (cacheManager == null) { cacheManager = core.lookupCacheManager(); notificationManager.register(new Observer(cacheManager)); } }