Skip to content

Commit

Permalink
feat: update instance for using type
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 29d858e commit fcd88a5
Show file tree
Hide file tree
Showing 5 changed files with 8 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import org.eclipse.jnosql.mapping.reflection.GenericFieldMetadata;
import org.eclipse.jnosql.mapping.reflection.MappingType;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
Expand Down Expand Up @@ -83,10 +82,10 @@ public <X, Y, T> void convert(T instance, List<Column> columns, Column column, F

if (Objects.nonNull(column)) {
GenericFieldMetadata genericField = (GenericFieldMetadata) field;
Collection elements = genericField.getCollectionInstance();
Collection elements = genericField.collectionInstance();
List<List<Column>> embeddable = (List<List<Column>>) column.get();
for (List<Column> columnList : embeddable) {
Object element = converter.toEntity(genericField.getElementType(), columnList);
Object element = converter.toEntity(genericField.elementType(), columnList);
elements.add(element);
}
field.write(instance, elements);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ private void appendValue(Map<String, NativeMapping> nativeFieldGroupByJavaField,
case EMBEDDED -> appendFields(nativeFieldGroupByJavaField, field, javaField, nativeField);
case COLLECTION -> {
if (((GenericFieldMetadata) field).isEmbeddable()) {
Class<?> type = ((GenericFieldMetadata) field).getElementType();
Class<?> type = ((GenericFieldMetadata) field).elementType();
String nativeFieldAppended = appendPreparePrefix(nativeField, field.name());
appendFields(nativeFieldGroupByJavaField, field, javaField, nativeFieldAppended, type);
return;
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 GenericFieldMetadata#getCollectionInstance}
* A collection supplier to create an {@link Collection} instance at {@link GenericFieldMetadata#collectionInstance}
* by SPI
*
* @param <T> the collection instance
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@ private boolean hasFieldAnnotation(Class<?> annotation) {
.getAnnotation(annotation) != null;
}

public Class<?> getElementType() {
public Class<?> elementType() {
return (Class<?>) ((ParameterizedType) nativeField()
.getGenericType())
.getActualTypeArguments()[0];
}

public Collection<?> getCollectionInstance() {
public Collection<?> collectionInstance() {
Class<?> type = nativeField().getType();
final CollectionSupplier supplier = ServiceLoader.load(CollectionSupplier.class)
.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
import org.eclipse.jnosql.mapping.reflection.GenericFieldMetadata;
import org.eclipse.jnosql.mapping.reflection.MappingType;

import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
Expand Down Expand Up @@ -85,10 +84,10 @@ public <X, Y, T> void convert(T instance, List<Document> documents, Document doc

if (Objects.nonNull(document)) {
GenericFieldMetadata genericField = (GenericFieldMetadata) field;
Collection collection = genericField.getCollectionInstance();
Collection collection = genericField.collectionInstance();
List<List<Document>> embeddable = (List<List<Document>>) document.get();
for (List<Document> documentList : embeddable) {
Object element = converter.toEntity(genericField.getElementType(), documentList);
Object element = converter.toEntity(genericField.elementType(), documentList);
collection.add(element);
}
field.write(instance, collection);
Expand Down

0 comments on commit fcd88a5

Please sign in to comment.