@Test public void testFieldMetadataEqualsAndHashCode() { TestCaseBuilder.newTestCase() .addTrueCase(new FieldMetadata(null, null, null, null), new FieldMetadata(null, null, null, null)) .addTrueCase(new FieldMetadata("name", null, null, null), new FieldMetadata("name", null, null, null)) .addTrueCase(new FieldMetadata("name", "type", null, null), new FieldMetadata("name", "type", null, null)) .addTrueCase(new FieldMetadata("name", "type", "accessor", null), new FieldMetadata("name", "type", "accessor", null)) .addTrueCase(new FieldMetadata("name", "type", "accessor", "mutator"), new FieldMetadata("name", "type", "accessor", "mutator")) .addFalseCase(new FieldMetadata(null, null, null, null), new FieldMetadata("name", null, null, null)) .addFalseCase(new FieldMetadata(null, null, null, null), new FieldMetadata("name", "type", null, null)) .addFalseCase(new FieldMetadata(null, null, null, null), new FieldMetadata("name", "type", "accessor", "mutator")) .addFalseCase(new FieldMetadata("name", null, null, null), new FieldMetadata("name1", null, null, null)) .addFalseCase(new FieldMetadata("name", "type", null, null), new FieldMetadata("name", "type1", null, null)) .addFalseCase(new FieldMetadata("name", "type", "accessor", null), new FieldMetadata("name", "type", "accessor1", null)) .addFalseCase(new FieldMetadata("name", "type", "accessor", "mutator"), new FieldMetadata("name", "type", "accessor", "mutator1")) .test(); }
private void addVariableOptions(VariableMetadata variableMetadata) { String option = variableMetadata.getName(); String optionLabel = getVariableLabel(variableMetadata); options.put(option, optionLabel); optionType.put(option, unboxDefaultType(variableMetadata.getType())); TypeMetadata typeMetadata = variableMetadata.getTypeMetadata(); typeMetadata.getFieldMetadata().stream() .filter(fieldMetadata -> fieldMetadata.getAccessor() != null) .forEach(fieldMetadata -> { String fieldOption = variableMetadata.getName() + "." + fieldMetadata.getAccessor() + "()"; String fieldOptionLabel = optionLabel + "." + fieldMetadata.getName(); options.put(fieldOption, fieldOptionLabel); optionType.put(fieldOption, unboxDefaultType(fieldMetadata.getType())); }); }
private void assertHasField(TypeMetadata typeMetadata, String fieldName, String type, String accessor, String mutator) { FieldMetadata fieldMetadata = typeMetadata.getFieldMetadata().stream().filter(fieldMetadata1 -> fieldMetadata1.getName().equals(fieldName)).findFirst().orElse(null); assertNotNull(fieldMetadata); assertEquals(type, fieldMetadata.getType()); assertEquals(accessor, fieldMetadata.getAccessor()); assertEquals(mutator, fieldMetadata.getMutator()); }
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); }