private List<Field> findUserCustomedRequiredFields( Class<?> modelClass, List<ModelField> userCustomedFields) { List<Field> requiredField = new ArrayList<Field>(); for (ModelField modelField : userCustomedFields) { if (modelField.isNotNull()) { String name = modelField.getName(); Field field = ModelReflectionUtil.getModelField(name, modelClass); requiredField.add(field); } } return requiredField; }
/** * TODO use one single json file to configure thease default fields in both install and parse * phrases * * @return field bean names which is */ private HashMap<Class<?>, List<Field>> parseDefaultRequiredFields() throws Exception { if (DefaultRequiredFieldsCache != null) { return DefaultRequiredFieldsCache; } HashMap<Class<?>, List<Field>> result = new HashMap<Class<?>, List<Field>>(); for (String[] requiredFields : reservedModelRequiredFields) { String className = ReservedModelPackage + "." + requiredFields[0]; Class<?> clazz = Class.forName(className); List<Field> fields = new ArrayList<Field>(); Field[] allFields = ModelReflectionUtil.getModelFields(clazz); // if(clazz==CommentBase.class){ // System.out.print(0); // } if (requiredFields.length > 1) { for (int i = 1; i < requiredFields.length; i++) { Field field = null; String fieldName = requiredFields[i]; for (Field f : allFields) { if (f.getName().equals(fieldName)) { field = f; break; } } if (field == null) { throw new NoSuchFieldException(className + "." + fieldName); } logger.debug("add field " + field.getName() + " to class " + clazz); fields.add(field); } } result.put(clazz, fields); } DefaultRequiredFieldsCache = result; return DefaultRequiredFieldsCache; }