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 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); }
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); }