Skip to content

Commit

Permalink
refactoring: update fieldmetata instead of FieldMapping
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <otaviopolianasantana@gmail.com>
  • Loading branch information
otaviojava committed Jul 30, 2023
1 parent e855426 commit b7491f3
Show file tree
Hide file tree
Showing 36 changed files with 201 additions and 201 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
import org.eclipse.jnosql.mapping.IdNotFoundException;
import org.eclipse.jnosql.mapping.reflection.EntitiesMetadata;
import org.eclipse.jnosql.mapping.reflection.EntityMetadata;
import org.eclipse.jnosql.mapping.reflection.FieldMapping;
import org.eclipse.jnosql.mapping.reflection.FieldMetadata;
import org.eclipse.jnosql.mapping.util.ConverterUtil;

import java.time.Duration;
Expand Down Expand Up @@ -166,7 +166,7 @@ public <T, K> Optional<T> find(Class<T> type, K id) {
requireNonNull(type, "type is required");
requireNonNull(id, "id is required");
EntityMetadata entityMetadata = getEntities().get(type);
FieldMapping idField = entityMetadata.id()
FieldMetadata idField = entityMetadata.id()
.orElseThrow(() -> IdNotFoundException.newInstance(type));

Object value = ConverterUtil.getValue(id, entityMetadata, idField.fieldName(), getConverters());
Expand All @@ -182,7 +182,7 @@ public <T, K> void delete(Class<T> type, K id) {
requireNonNull(id, "id is required");

EntityMetadata entityMetadata = getEntities().get(type);
FieldMapping idField = entityMetadata.id()
FieldMetadata idField = entityMetadata.id()
.orElseThrow(() -> IdNotFoundException.newInstance(type));
Object value = ConverterUtil.getValue(id, entityMetadata, idField.fieldName(), getConverters());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.eclipse.jnosql.mapping.reflection.ConstructorMetadata;
import org.eclipse.jnosql.mapping.reflection.EntitiesMetadata;
import org.eclipse.jnosql.mapping.reflection.EntityMetadata;
import org.eclipse.jnosql.mapping.reflection.FieldMapping;
import org.eclipse.jnosql.mapping.reflection.FieldMetadata;
import org.eclipse.jnosql.mapping.reflection.FieldValue;
import org.eclipse.jnosql.mapping.reflection.InheritanceMetadata;
import org.eclipse.jnosql.mapping.reflection.MappingType;
Expand Down Expand Up @@ -132,15 +132,15 @@ public <T> T toEntity(ColumnEntity entity) {
}
}

protected ColumnFieldValue to(FieldMapping field, Object entity) {
protected ColumnFieldValue to(FieldMetadata field, Object entity) {
Object value = field.read(entity);
return DefaultColumnFieldValue.of(value, field);
}

protected <T> Consumer<String> feedObject(T entity, List<Column> columns, Map<String, FieldMapping> fieldsGroupByName) {
protected <T> Consumer<String> feedObject(T entity, List<Column> columns, Map<String, FieldMetadata> fieldsGroupByName) {
return (String k) -> {
Optional<Column> column = columns.stream().filter(c -> c.name().equals(k)).findFirst();
FieldMapping field = fieldsGroupByName.get(k);
FieldMetadata field = fieldsGroupByName.get(k);
FieldConverter fieldConverter = FieldConverter.get(field);
if (ENTITY.equals(field.type())) {
column.ifPresent(c -> fieldConverter.convert(entity, c, field, this));
Expand Down Expand Up @@ -180,7 +180,7 @@ private <T> T convertEntityByConstructor(List<Column> columns, EntityMetadata ma
}

private <T> T convertEntity(List<Column> columns, EntityMetadata mapping, T instance) {
final Map<String, FieldMapping> fieldsGroupByName = mapping.fieldsGroupByName();
final Map<String, FieldMetadata> fieldsGroupByName = mapping.fieldsGroupByName();
final List<String> names = columns.stream().map(Column::name).sorted().toList();
final Predicate<String> existField = k -> Collections.binarySearch(names, k) >= 0;
final Predicate<String> isElementType = k -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@
import org.eclipse.jnosql.mapping.AttributeConverter;
import org.eclipse.jnosql.communication.column.Column;
import org.eclipse.jnosql.mapping.Converters;
import org.eclipse.jnosql.mapping.reflection.FieldMapping;
import org.eclipse.jnosql.mapping.reflection.FieldMetadata;
import org.eclipse.jnosql.mapping.reflection.MappingType;
import org.eclipse.jnosql.mapping.reflection.FieldValue;
import org.eclipse.jnosql.mapping.reflection.DefaultFieldValue;
import org.eclipse.jnosql.mapping.reflection.GenericFieldMapping;
import org.eclipse.jnosql.mapping.reflection.GenericFieldMetadata;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -47,7 +47,7 @@ public Object value() {
}

@Override
public FieldMapping field() {
public FieldMetadata field() {
return fieldValue.field();
}

Expand Down Expand Up @@ -94,7 +94,7 @@ private String getName() {
}

private boolean isEmbeddableElement() {
return ((GenericFieldMapping) field()).isEmbeddable();
return ((GenericFieldMetadata) field()).isEmbeddable();
}

@Override
Expand All @@ -103,7 +103,7 @@ public String toString() {
'}';
}

static ColumnFieldValue of(Object value, FieldMapping field) {
static ColumnFieldValue of(Object value, FieldMetadata field) {
return new DefaultColumnFieldValue(new DefaultFieldValue(value, field));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@
import org.eclipse.jnosql.communication.column.Column;
import org.eclipse.jnosql.mapping.AttributeConverter;
import org.eclipse.jnosql.mapping.reflection.EntityMetadata;
import org.eclipse.jnosql.mapping.reflection.FieldMapping;
import org.eclipse.jnosql.mapping.reflection.GenericFieldMapping;
import org.eclipse.jnosql.mapping.reflection.FieldMetadata;
import org.eclipse.jnosql.mapping.reflection.GenericFieldMetadata;
import org.eclipse.jnosql.mapping.reflection.MappingType;

import java.lang.reflect.Field;
Expand All @@ -36,7 +36,7 @@ enum FieldConverter {
EMBEDDED {
@Override
public <X, Y, T> void convert(T instance, List<Column> columns, Column column,
FieldMapping field, ColumnEntityConverter converter) {
FieldMetadata field, ColumnEntityConverter converter) {
Field nativeField = field.nativeField();
Object subEntity = converter.toEntity(nativeField.getType(), columns);
EntityMetadata mapping = converter.getEntities().get(subEntity.getClass());
Expand All @@ -50,7 +50,7 @@ public <X, Y, T> void convert(T instance, List<Column> columns, Column column,
}
}, ENTITY {
@Override
public <X, Y, T> void convert(T instance, List<Column> columns, Column subColumn, FieldMapping field,
public <X, Y, T> void convert(T instance, List<Column> columns, Column subColumn, FieldMetadata field,
ColumnEntityConverter converter) {

if (Objects.nonNull(subColumn)) {
Expand All @@ -60,7 +60,7 @@ public <X, Y, T> void convert(T instance, List<Column> columns, Column subColumn
}
}

private <T> void converterSubDocument(T instance, Column subColumn, FieldMapping field,
private <T> void converterSubDocument(T instance, Column subColumn, FieldMetadata field,
ColumnEntityConverter converter) {
Object value = subColumn.get();
if (value instanceof Map map) {
Expand All @@ -79,11 +79,11 @@ private <T> void converterSubDocument(T instance, Column subColumn, FieldMapping
}
}, COLLECTION {
@Override
public <X, Y, T> void convert(T instance, List<Column> columns, Column column, FieldMapping field,
public <X, Y, T> void convert(T instance, List<Column> columns, Column column, FieldMetadata field,
ColumnEntityConverter converter) {

if (Objects.nonNull(column)) {
GenericFieldMapping genericField = (GenericFieldMapping) field;
GenericFieldMetadata genericField = (GenericFieldMetadata) field;
Collection elements = genericField.getCollectionInstance();
List<List<Column>> embeddable = (List<List<Column>>) column.get();
for (List<Column> columnList : embeddable) {
Expand All @@ -96,7 +96,7 @@ public <X, Y, T> void convert(T instance, List<Column> columns, Column column, F
}, DEFAULT{
@Override
public <X, Y, T> void convert(T instance, List<Column> columns, Column column,
FieldMapping field, ColumnEntityConverter converter) {
FieldMetadata field, ColumnEntityConverter converter) {
if (Objects.nonNull(column)) {
Value value = column.value();
Optional<Class<? extends AttributeConverter<X, Y>>> optionalConverter = field.converter();
Expand All @@ -112,7 +112,7 @@ public <X, Y, T> void convert(T instance, List<Column> columns, Column column,
}
};

static FieldConverter get(FieldMapping field) {
static FieldConverter get(FieldMetadata field) {
if (MappingType.EMBEDDED.equals(field.type())) {
return EMBEDDED;
} else if (MappingType.ENTITY.equals(field.type())) {
Expand All @@ -124,14 +124,14 @@ static FieldConverter get(FieldMapping field) {
}
}

private static boolean isCollectionEmbeddable(FieldMapping field) {
return MappingType.COLLECTION.equals(field.type()) && ((GenericFieldMapping) field).isEmbeddable();
private static boolean isCollectionEmbeddable(FieldMetadata field) {
return MappingType.COLLECTION.equals(field.type()) && ((GenericFieldMetadata) field).isEmbeddable();
}

abstract <X, Y, T> void convert(T instance, List<Column> columns, Column column, FieldMapping field,
abstract <X, Y, T> void convert(T instance, List<Column> columns, Column column, FieldMetadata field,
ColumnEntityConverter converter);

<X, Y, T> void convert(T instance, Column column, FieldMapping field,
<X, Y, T> void convert(T instance, Column column, FieldMetadata field,
ColumnEntityConverter converter) {
convert(instance, null, column, field, converter);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import org.eclipse.jnosql.mapping.column.JNoSQLColumnTemplate;
import org.eclipse.jnosql.mapping.column.MappingColumnQuery;
import org.eclipse.jnosql.mapping.reflection.EntityMetadata;
import org.eclipse.jnosql.mapping.reflection.FieldMapping;
import org.eclipse.jnosql.mapping.reflection.FieldMetadata;

import java.util.List;
import java.util.Objects;
Expand Down Expand Up @@ -102,7 +102,7 @@ public Stream<T> findAllById(Iterable<K> ids) {
.flatMap(optionalToStream());
}

private FieldMapping getIdField() {
private FieldMetadata getIdField() {
return getEntityMetadata().id().orElseThrow(KEY_NOT_FOUND_EXCEPTION_SUPPLIER);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
import java.util.Optional;

/**
* Base class to all {@link FieldMapping}
* Base class to all {@link FieldMetadata}
*
* @see FieldMapping
* @see FieldMetadata
*/
abstract class AbstractFieldMapping implements FieldMapping {
abstract class AbstractFieldMetadata implements FieldMetadata {

protected final MappingType type;

Expand All @@ -42,8 +42,8 @@ abstract class AbstractFieldMapping implements FieldMapping {

protected final FieldWriter writer;

AbstractFieldMapping(MappingType type, Field field, String name,
Class<? extends AttributeConverter<?, ?>> converter, FieldReader reader, FieldWriter writer) {
AbstractFieldMetadata(MappingType type, Field field, String name,
Class<? extends AttributeConverter<?, ?>> converter, FieldReader reader, FieldWriter writer) {
this.type = type;
this.field = field;
this.name = name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ public EntityMetadata create(Class<?> entity) {
long start = System.currentTimeMillis();
String entityName = reflections.getEntityName(entity);

List<FieldMapping> fields = reflections.getFields(entity)
List<FieldMetadata> fields = reflections.getFields(entity)
.stream().map(this::to).collect(toList());

List<String> fieldsName = fields.stream().map(FieldMapping::name).collect(toList());
List<String> fieldsName = fields.stream().map(FieldMetadata::name).collect(toList());

Map<String, NativeMapping> nativeFieldGroupByJavaField =
getNativeFieldGroupByJavaField(fields, "", "");

Map<String, FieldMapping> fieldsGroupedByName = fields.stream()
.collect(collectingAndThen(toMap(FieldMapping::name,
Map<String, FieldMetadata> fieldsGroupedByName = fields.stream()
.collect(collectingAndThen(toMap(FieldMetadata::name,
Function.identity()), Collections::unmodifiableMap));


Expand All @@ -92,19 +92,19 @@ public EntityMetadata create(Class<?> entity) {
return mapping;
}

private Map<String, NativeMapping> getNativeFieldGroupByJavaField(List<FieldMapping> fields,
private Map<String, NativeMapping> getNativeFieldGroupByJavaField(List<FieldMetadata> fields,
String javaField, String nativeField) {

Map<String, NativeMapping> nativeFieldGroupByJavaField = new HashMap<>();

for (FieldMapping field : fields) {
for (FieldMetadata field : fields) {
appendValue(nativeFieldGroupByJavaField, field, javaField, nativeField);
}

return nativeFieldGroupByJavaField;
}

private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMapping field,
private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField, FieldMetadata field,
String javaField, String nativeField) {


Expand All @@ -113,8 +113,8 @@ private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField,
appendPreparePrefix(nativeField, field.name()));
case EMBEDDED -> appendFields(nativeFieldGroupByJavaField, field, javaField, nativeField);
case COLLECTION -> {
if (((GenericFieldMapping) field).isEmbeddable()) {
Class<?> type = ((GenericFieldMapping) field).getElementType();
if (((GenericFieldMetadata) field).isEmbeddable()) {
Class<?> type = ((GenericFieldMetadata) field).getElementType();
String nativeFieldAppended = appendPreparePrefix(nativeField, field.name());
appendFields(nativeFieldGroupByJavaField, field, javaField, nativeFieldAppended, type);
return;
Expand All @@ -127,22 +127,22 @@ private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField,
}

private void appendDefaultField(Map<String, NativeMapping> nativeFieldGroupByJavaField,
FieldMapping field, String javaField, String nativeField) {
FieldMetadata field, String javaField, String nativeField) {

nativeFieldGroupByJavaField.put(javaField.concat(field.fieldName()),
NativeMapping.of(nativeField.concat(field.name()), field));
}

private void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
FieldMapping field,
FieldMetadata field,
String javaField, String nativeField) {

Class<?> type = field.nativeField().getType();
appendFields(nativeFieldGroupByJavaField, field, javaField, nativeField, type);
}

private void appendFields(Map<String, NativeMapping> nativeFieldGroupByJavaField,
FieldMapping field, String javaField, String nativeField,
FieldMetadata field, String javaField, String nativeField,
Class<?> type) {

Map<String, NativeMapping> entityMap = getNativeFieldGroupByJavaField(
Expand Down Expand Up @@ -170,7 +170,7 @@ private String appendPrefix(String prefix, String field) {
}


private FieldMapping to(Field field) {
private FieldMetadata to(Field field) {
MappingType mappingType = MappingType.of(field);
reflections.makeAccessible(field);
Convert convert = field.getAnnotation(Convert.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import java.util.function.Supplier;

/**
* A collection supplier to create an {@link Collection} instance at {@link GenericFieldMapping#getCollectionInstance}
* A collection supplier to create an {@link Collection} instance at {@link GenericFieldMetadata#getCollectionInstance}
* by SPI
*
* @param <T> the collection instance
Expand Down
Loading

0 comments on commit b7491f3

Please sign in to comment.