private BeanId getRecursiveBeanId(Object bean) { BeanId targetId = getBeanId(bean); Bean targetBean = conversion.convert(bean, Bean.class); targetBean.set(conversion.convert(bean.getClass(), Schema.class)); targetId.setBean(targetBean); return targetId; } }
private void setSingletonReferences(Bean bean) { Schema s = bean.getSchema(); for (SchemaPropertyRef ref : s.get(SchemaPropertyRef.class)) { if (ref.isSingleton()) { Schema singletonSchema = schemaManager.getSchema(ref.getSchemaName()); Optional<Bean> singleton = beanManager.getSingleton(ref.getSchemaName()); if (singleton.isPresent()) { singleton.get().set(singletonSchema); BeanId singletonId = singleton.get().getId(); singletonId.setBean(singleton.get()); // recursive call. setSingletonReferences(singleton.get()); bean.setReference(ref.getName(), singletonId); } } } }
private void setSingletonReferences(Bean bean) { Schema s = bean.getSchema(); for (SchemaPropertyRef ref : s.get(SchemaPropertyRef.class)) { if (ref.isSingleton()) { Schema singletonSchema = schemaManager.getSchema(ref.getSchemaName()); Optional<Bean> singleton = beanManager.getSingleton(ref.getSchemaName()); if (!singleton.isPresent()) { initFile(null); Bean fileBean = FILE_CONFIG.get(BeanId.createSingleton(ref.getSchemaName())); if (fileBean != null) { singleton = Optional.of(fileBean); } } if (!singleton.isPresent()) { singleton = Optional.of(Bean.create(BeanId.createSingleton(ref.getSchemaName()))); } singleton.get().set(singletonSchema); BeanId singletonId = singleton.get().getId(); singletonId.setBean(singleton.get()); // recursive call. setSingletonReferences(singleton.get()); bean.setReference(ref.getName(), singletonId); } } }
Bean fileBean = FILE_CONFIG.get(singleton); if (fileBean != null) { fileBean.set(schema); bean = Optional.of(fileBean);
@Override public Bean convert(Object source, Class<? extends Bean> specificType) { ClassIntrospector i = new ClassIntrospector(source.getClass()); Bean bean = Bean.create(getBeanId(source)); for (FieldWrap field : i.getNonStaticFieldList()) { field.checkNotPublic(); Object value = field.getValue(source); if (value == null) { continue; } addProperty(value, bean, field); } Schema schema = conversion.convert(source.getClass(), Schema.class); bean.set(schema); return bean; }
@Override public void setSchema(Collection<Bean> beans) { for (Bean bean : beans) { Schema schema = NAME_TO_SCHEMA.get(bean.getId().getSchemaName()); if (schema == null) { throw CFG101_SCHEMA_NOT_EXIST(bean.getId().getSchemaName()); } bean.set(schema); for (BeanId id : bean.getReferences()) { Bean refBean = id.getBean(); if (refBean != null && refBean.getSchema() == null) { setSchema(Arrays.asList(refBean)); } } } }
private void constructBean(Config properties, Schema schema, Bean bean, Map<String, Schema> schemas) { bean.set(schemas.get(bean.getId().getSchemaName())); for (String propertyName : schema.getPropertyNames()) { Object value; b.set(schemas.get(b.getId().getSchemaName())); id.setBean(b); bean.addReference(propertyName, id); b.set(schemas.get(b.getId().getSchemaName())); beanId.setBean(b); beanIds.add(beanId); b.set(schemas.get(b.getId().getSchemaName())); id.setBean(b); bean.addReference(propertyName, id);