addParametricTypeForField(factType, fieldName, f.getGenericType()); final Class<?> returnType = f.getReturnType(); final String genericReturnType = typeSystemConverter.translateClassToGenericType(returnType); returnType.getName(), ModelField.FIELD_CLASS_TYPE.REGULAR_CLASS, f.getOrigin(), f.getAccessorAndMutator(), genericReturnType)); if (f.getGenericType() instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) f.getGenericType(); Set<Annotation> fieldAnnotations = f.getAnnotations(); if (fieldAnnotations != null && !fieldAnnotations.isEmpty()) { this.fieldAnnotations.put(fieldName, f.getAnnotations());
protected TypeMetadata buildTypeMetadata(String type, ClassLoader classLoader) throws ClassNotFoundException { GenerationTools generationTools = new GenerationTools(); Class<?> clazz = classLoader.loadClass(type); ClassFieldInspector fieldInspector = new ClassFieldInspector(clazz); List<FieldMetadata> fields = new ArrayList<>(); for (String fieldName : fieldInspector.getFieldNames()) { ClassFieldInspector.FieldInfo fieldInfo = fieldInspector.getFieldTypesFieldInfo().get(fieldName); if (fieldInfo.getOrigin() == ModelField.FIELD_ORIGIN.DECLARED || fieldInfo.getOrigin() == ModelField.FIELD_ORIGIN.INHERITED) { String accessor = null; String mutator = null; if (fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.ACCESSOR || fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.BOTH) { accessor = generationTools.toJavaGetter(fieldName, fieldInfo.getReturnType().getName()); } if (fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.MUTATOR || fieldInfo.getAccessorAndMutator() == FieldAccessorsAndMutators.BOTH) { mutator = generationTools.toJavaSetter(fieldName); } fields.add(new FieldMetadata(fieldName, fieldInfo.getReturnType().getName(), accessor, mutator)); } } return new TypeMetadata(type, fields); }