private Map<String, String> getBeanToDocNames() { if (beanToDocNames == null) { beanToDocNames = new HashMap<String, String>(); for (FieldMapping fieldMapping : fieldMappings.values()) { beanToDocNames.put(fieldMapping.getBeanFieldName(), fieldMapping.getDocFieldName()); } } return beanToDocNames; } }
for (int i = 0; i < fieldMappings.length; i++) { WfDocFieldMapping wfDocFieldMapping = wfDocBeanMapping.getFieldMappingList().get(i); fieldMappings[i] = new PackableDocRWConfig.FieldMapping(wfDocFieldMapping.getDocFieldName(), wfDocFieldMapping.getBeanFieldName());
for (PackableDocRWConfig.FieldMapping fieldMapping : wfDocBeanMappingDef.getRwConfig() .getFieldMappings()) { if (docIdName.equals(fieldMapping.getDocFieldName())) { update.add(fieldMapping.getBeanFieldName(), packableDoc.readFieldValue(fieldMapping.getDocFieldName()));
private void writeFieldObject(FieldMapping fMapping, PackableDoc pd, Object value) throws UnifyException { FieldConfig fc = pd.config.getFieldConfig(fMapping.getDocFieldName()); if (value != null) { if (fc.isComplex()) { PackableDocConfig fpdConfig = fc.getPackableDocConfig(); if (fc.isArray()) { Object[] beans = DataUtils.convert(Object[].class, value, null); PackableDoc[] fpd = new PackableDoc[beans.length]; for (int i = 0; i < beans.length; i++) { if (beans[i] != null) { fpd[i] = new PackableDoc(fpdConfig, auditable); fpd[i].readFrom(fMapping.getPackableDocRWConfig(), beans[i]); } } pd.values.put(fc.getName(), fpd); } else { PackableDoc fpd = new PackableDoc(fpdConfig, auditable); fpd.readFrom(fMapping.getPackableDocRWConfig(), value); pd.values.put(fc.getName(), fpd); } } else { pd.values.put(fc.getName(), DataUtils.convert(fc.getType(), value, null)); } } else { pd.values.put(fc.getName(), null); } } }
private Object readFieldObject(FieldMapping fMapping, PackableDoc pd) throws UnifyException { Object val = pd.values.get(fMapping.getDocFieldName()); if (val != null) { if (fMapping.isComplex()) { FieldConfig fc = pd.config.getFieldConfig(fMapping.getDocFieldName()); if (fc.isArray()) { PackableDoc[] pdArray = (PackableDoc[]) val; Object[] beans = new Object[pdArray.length]; for (int i = 0; i < pdArray.length; i++) { beans[i] = readObject(fMapping.getPackableDocRWConfig(), pdArray[i]); } val = beans; } else { val = readObject(fMapping.getPackableDocRWConfig(), (PackableDoc) val); } } } return val; }
public String getMappedBeanField(String docFieldName) throws UnifyException { return getFieldMapping(docFieldName).getBeanFieldName(); }
private Object readObject(PackableDocRWConfig rwConfig, PackableDoc pd) throws UnifyException { Object bean = null; if (pd != null) { bean = ReflectUtils.newInstance(rwConfig.getBeanType()); for (FieldMapping fMapping : rwConfig.getFieldMappings()) { Object val = readFieldObject(fMapping, pd); if (val != null) { DataUtils.setNestedBeanProperty(bean, fMapping.getBeanFieldName(), val); } } } return bean; }
public void writeTo(PackableDocRWConfig rwConfig, Object bean) throws UnifyException { if (bean == null) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_CANT_WRITE_TO_NULL); } for (FieldMapping fMapping : rwConfig.getFieldMappings()) { DataUtils.setNestedBeanProperty(bean, fMapping.getBeanFieldName(), readFieldObject(fMapping, this), null); } }
public void readFrom(PackableDocRWConfig rwConfig, Object bean) throws UnifyException { if (bean == null) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_CANT_READ_FROM_NULL); } for (FieldMapping fMapping : rwConfig.getFieldMappings()) { writeFieldObject(fMapping, this, ReflectUtils.getNestedBeanProperty(bean, fMapping.getBeanFieldName())); } }
public PackableDocRWConfig(Class<?> beanType, List<FieldMapping> fieldMappingList) { this.beanType = beanType; fieldMappings = new HashMap<String, FieldMapping>(); for (FieldMapping fieldMapping : fieldMappingList) { fieldMappings.put(fieldMapping.getDocFieldName(), fieldMapping); } }
public Object readFieldValue(PackableDocRWConfig rwConfig, String name) throws UnifyException { FieldConfig fc = config.getFieldConfig(name); if (!fc.isComplex()) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_FIELD_NOT_COMPLEX, name); } FieldMapping fMapping = rwConfig.getFieldMapping(name); if (!fMapping.isComplex()) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_FIELDMAPPING_NOT_COMPLEX, fMapping.getDocFieldName(), fMapping.getBeanFieldName()); } return readFieldObject(fMapping, this); }
public void writeFieldValue(PackableDocRWConfig rwConfig, String name, Object value) throws UnifyException { FieldConfig fc = config.getFieldConfig(name); if (!fc.isComplex()) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_FIELD_NOT_COMPLEX, name); } FieldMapping fMapping = rwConfig.getFieldMapping(name); if (!fMapping.isComplex()) { throw new UnifyException(UnifyCoreErrorConstants.DOCUMENT_FIELDMAPPING_NOT_COMPLEX, fMapping.getDocFieldName(), fMapping.getBeanFieldName()); } writeFieldObject(fMapping, this, value); }