private boolean isPresent(FieldInfo field) { String columnName = field.getColumnName(); String fieldName = field.getFieldName(); for (FieldInfo f : this) { if (f.getFieldName().equals(fieldName) || f.getColumnName().equals(columnName)) { return true; } } return false; }
public FieldsCollection overrideAtttributes(Map<String, String> mapping) { if (mapping.size() == 0) { return this; } FieldsCollection newCollection = new FieldsCollection(); for (FieldInfo field : this) { String name = field.getFieldName(); if (mapping.containsKey(name)) { newCollection.add(field.withColumnName(mapping.get(name))); } else { newCollection.add(field); } } return newCollection; }
public FieldInfo findField(String fieldName) { return fields.stream().filter(f -> f.getFieldName().equals(fieldName)).findFirst().get(); }
private EntityFieldType getField(String fieldName) { return fields.stream().filter(f -> f.getFieldName().equals(fieldName)).findFirst().get().getFieldType(); } }
public EntityInfo inspect() { JpaFieldsInspector fieldsInspector = new JpaFieldsInspector(); List<FieldInfo> fieldsFromClass = fieldsInspector.getFieldsFromClass(entityClass); EntityFieldAccesorFactory factory = new EntityFieldAccesorFactory(); List<ColumnInfo> columns = fieldsFromClass.stream().map(field -> { Function<Object, Object> accessor = factory.getAccessor(entityClass, field.getFieldName()); return new ColumnInfo(field.getColumnName(), field.getFieldType(), accessor); }).collect(Collectors.toList()); return new EntityInfo(entityClass, getTableName(), columns); }
@Test public void inspectEntityWithHierarchy() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(ChildClass.class); assertEquals(2, fields.size()); assertEquals("otherField", fields.get(0).getFieldName()); assertEquals("someField", fields.get(1).getFieldName()); }
@Test public void inspectEntityWithHierarchyMapped() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(ChildClassWithMapped.class); assertEquals(2, fields.size()); assertEquals("otherField", fields.get(0).getFieldName()); assertEquals("someField", fields.get(1).getFieldName()); }
@Test public void inspectEntityWithAttributeOverride() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(ChildClassWithAttributeOverride.class); assertEquals(2, fields.size()); assertEquals("otherField", fields.get(0).getFieldName()); assertEquals("someField", fields.get(1).getFieldName()); assertEquals("field_override", fields.get(1).getColumnName()); }
@Test public void inspectEntityWithAttributeOverrides() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(ChildClassWithAttributeOverrides.class); assertEquals(2, fields.size()); assertEquals("otherField", fields.get(0).getFieldName()); assertEquals("someField", fields.get(1).getFieldName()); assertEquals("field_override", fields.get(1).getColumnName()); }
@Test public void inspectEntityWithNonEntityParent() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(ChildClassNonEntity.class); assertEquals(1, fields.size()); assertEquals("otherField", fields.get(0).getFieldName()); }
public EntityInfoBuilder<T> addField(FieldInfo fieldInfo) { validate(fieldInfo.getColumnName()); Function<Object, Object> accessor = accesorFactory.getAccessor(entityClass, fieldInfo.getFieldName()); return addColumn(new ColumnInfo(fieldInfo.getColumnName(), fieldInfo.getFieldType(), accessor)); }
@Test public void inspectColumnByPropertyName() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(SimpleEntityUnannotated.class); assertEquals(1, fields.size()); FieldInfo field = fields.get(0); assertEquals("someField", field.getColumnName()); assertEquals("someField", field.getFieldName()); }
@Test public void inspectColumnByColumnAnnotation() { List<FieldInfo> fields = fieldsInspector.getFieldsFromClass(SimpleEntityAnnotated.class); assertEquals(1, fields.size()); FieldInfo field = fields.get(0); assertEquals("some_column", field.getColumnName()); assertEquals("someField", field.getFieldName()); }