public PackableDocRWConfig(Class<?> beanType, List<FieldMapping> fieldMappingList) { this.beanType = beanType; fieldMappings = new HashMap<String, FieldMapping>(); for (FieldMapping fieldMapping : fieldMappingList) { fieldMappings.put(fieldMapping.getDocFieldName(), fieldMapping); } }
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; } }
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); } } }
for (PackableDocRWConfig.FieldMapping fieldMapping : wfDocBeanMappingDef.getRwConfig() .getFieldMappings()) { if (docIdName.equals(fieldMapping.getDocFieldName())) { packableDoc.readFieldValue(fieldMapping.getDocFieldName()));
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 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); }