Skip to content

Commit

Permalink
feat: update mapper select
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <otaviopolianasantana@gmail.com>
  • Loading branch information
otaviojava committed Mar 2, 2024
1 parent a8366db commit 5eb150c
Show file tree
Hide file tree
Showing 38 changed files with 223 additions and 213 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@


import jakarta.data.exceptions.NonUniqueResultException;
import jakarta.nosql.PreparedStatement;
import jakarta.nosql.QueryMapper;

import org.eclipse.jnosql.communication.semistructured.CommunicationEntity;
Expand Down Expand Up @@ -62,7 +61,7 @@ public abstract class AbstractSemistructuredTemplate implements SemistructuredTe
*
* @return the entity converter
*/
protected abstract ColumnEntityConverter converter();
protected abstract EntityConverter converter();

/**
* Retrieves the manager responsible for database operations.
Expand All @@ -76,7 +75,7 @@ public abstract class AbstractSemistructuredTemplate implements SemistructuredTe
*
* @return the event manager
*/
protected abstract ColumnEventPersistManager eventManager();
protected abstract EventPersistManager eventManager();


protected abstract EntitiesMetadata entities();
Expand Down Expand Up @@ -240,8 +239,8 @@ public <T> Optional<T> singleResult(String query) {
}

@Override
public PreparedStatement prepare(String query) {
return new ColumnPreparedStatement(PARSER.prepare(query, manager(), getObserver()), converter());
public jakarta.nosql.PreparedStatement prepare(String query) {
return new PreparedStatement(PARSER.prepare(query, manager(), getObserver()), converter());
}


Expand All @@ -268,14 +267,14 @@ private <T> Stream<T> executeQuery(SelectQuery query) {
public <T> QueryMapper.MapperFrom select(Class<T> type) {
Objects.requireNonNull(type, "type is required");
EntityMetadata metadata = entities().get(type);
return new ColumnMapperSelect(metadata, converters(), this);
return new MapperSelect(metadata, converters(), this);
}

@Override
public <T> QueryMapper.MapperDeleteFrom delete(Class<T> type) {
Objects.requireNonNull(type, "type is required");
EntityMetadata metadata = entities().get(type);
return new ColumnMapperDelete(metadata, converters(), this);
return new MapperDelete(metadata, converters(), this);
}

@Override
Expand Down Expand Up @@ -303,7 +302,7 @@ public <T> void deleteAll(Class<T> type) {
protected <T> T persist(T entity, UnaryOperator<CommunicationEntity> persistAction) {
return Stream.of(entity)
.map(toUnary(eventManager()::firePreEntity))
.map(converter()::toColumn)
.map(converter()::toCommunication)
.map(persistAction)
.map(t -> converter().toEntity(entity, t))
.map(toUnary(eventManager()::firePostEntity))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,19 +22,21 @@
import java.util.List;

/**
* The specialist {@link FieldValue} to column
* This interface represents a specialized {@link FieldValue} designed for mapping to database columns.
* Implementations of this interface are expected to provide methods for converting an entity to a list of elements.
*/
public interface ColumnFieldValue extends FieldValue {
public interface AttributeFieldValue extends FieldValue {


/**
* Converts an entity to a {@link List} of elements
* @param converter the converter
* @param converters the converters
* @param <X> the type of the entity attribute
* @param <Y> the type of the database column
* @return a {@link List} of columns from the field
* Converts an entity attribute to a list of elements.
*
* @param converter the entity converter used for conversion
* @param converters the converters used for conversion
* @param <X> the type of the entity attribute
* @param <Y> the type of the database column
* @return a list of elements representing the entity attribute
*/
<X, Y> List<Element> toElements(ColumnEntityConverter converter, Converters converters);
<X, Y> List<Element> toElements(EntityConverter converter, Converters converters);

}
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,10 @@ public class ColumnTemplateProducer implements Function<DatabaseManager, Semistr


@Inject
private ColumnEntityConverter converter;
private EntityConverter converter;

@Inject
private ColumnEventPersistManager eventManager;
private EventPersistManager eventManager;

@Inject
private EntitiesMetadata entities;
Expand All @@ -51,19 +51,19 @@ public SemistructuredTemplate apply(DatabaseManager manager) {
@Vetoed
static class ProducerSemistructuredTemplate extends AbstractSemistructuredTemplate {

private ColumnEntityConverter converter;
private EntityConverter converter;

private DatabaseManager manager;

private ColumnEventPersistManager eventManager;
private EventPersistManager eventManager;

private EntitiesMetadata entities;

private Converters converters;

ProducerSemistructuredTemplate(ColumnEntityConverter converter,
ProducerSemistructuredTemplate(EntityConverter converter,
DatabaseManager manager,
ColumnEventPersistManager eventManager,
EventPersistManager eventManager,
EntitiesMetadata entities,
Converters converters) {
this.converter = converter;
Expand All @@ -77,7 +77,7 @@ static class ProducerSemistructuredTemplate extends AbstractSemistructuredTempla
}

@Override
protected ColumnEntityConverter converter() {
protected EntityConverter converter() {
return converter;
}

Expand All @@ -87,7 +87,7 @@ protected DatabaseManager manager() {
}

@Override
protected ColumnEventPersistManager eventManager() {
protected EventPersistManager eventManager() {
return eventManager;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@
import static org.eclipse.jnosql.mapping.metadata.MappingType.ENTITY;
import static java.util.Collections.singletonList;

final class DefaultColumnFieldValue implements ColumnFieldValue {
final class DefaultAttributeFieldValue implements AttributeFieldValue {

private final FieldValue fieldValue;

private DefaultColumnFieldValue(FieldValue fieldValue) {
private DefaultAttributeFieldValue(FieldValue fieldValue) {
this.fieldValue = fieldValue;
}

Expand All @@ -58,13 +58,13 @@ public boolean isNotEmpty() {

@SuppressWarnings("unchecked")
@Override
public <X, Y> List<Element> toElements(ColumnEntityConverter converter, Converters converters) {
public <X, Y> List<Element> toElements(EntityConverter converter, Converters converters) {
if (value() == null) {
return singletonList(Element.of(getName(), null));
} else if (EMBEDDED.equals(getType())) {
return converter.toColumn(value()).elements();
return converter.toCommunication(value()).elements();
} else if (ENTITY.equals(getType())) {
return singletonList(Element.of(getName(), converter.toColumn(value()).elements()));
return singletonList(Element.of(getName(), converter.toCommunication(value()).elements()));
} else if (isEmbeddableCollection()) {
return singletonList(Element.of(getName(), getColumns(converter)));
}
Expand All @@ -76,10 +76,10 @@ public <X, Y> List<Element> toElements(ColumnEntityConverter converter, Converte
return singletonList(Element.of(getName(), value()));
}

private List<List<Element>> getColumns(ColumnEntityConverter converter) {
private List<List<Element>> getColumns(EntityConverter converter) {
List<List<Element>> columns = new ArrayList<>();
for (Object element : (Iterable<?>) value()) {
columns.add(converter.toColumn(element).elements());
columns.add(converter.toCommunication(element).elements());
}
return columns;
}
Expand All @@ -106,7 +106,7 @@ public String toString() {
'}';
}

static ColumnFieldValue of(Object value, FieldMetadata field) {
return new DefaultColumnFieldValue(new DefaultFieldValue(value, field));
static AttributeFieldValue of(Object value, FieldMetadata field) {
return new DefaultAttributeFieldValue(new DefaultFieldValue(value, field));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@
import jakarta.inject.Inject;

/**
* The default implementation to {@link ColumnEntityConverter}
* The default implementation to {@link EntityConverter}
*/
@ApplicationScoped
class DefaultColumnEntityConverter extends ColumnEntityConverter {
class DefaultEntityConverter extends EntityConverter {

@Inject
private EntitiesMetadata entities;
Expand All @@ -34,12 +34,12 @@ class DefaultColumnEntityConverter extends ColumnEntityConverter {
private Converters converters;

@Override
protected EntitiesMetadata getEntities() {
protected EntitiesMetadata entities() {
return entities;
}

@Override
protected Converters getConverters() {
protected Converters converters() {
return converters;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,19 @@
@ApplicationScoped
class DefaultSemistructuredTemplate extends AbstractSemistructuredTemplate {

private ColumnEntityConverter converter;
private EntityConverter converter;

private Instance<DatabaseManager> manager;

private ColumnEventPersistManager eventManager;
private EventPersistManager eventManager;

private EntitiesMetadata entities;

private Converters converters;

@Inject
DefaultSemistructuredTemplate(ColumnEntityConverter converter, Instance<DatabaseManager> manager,
ColumnEventPersistManager eventManager,
DefaultSemistructuredTemplate(EntityConverter converter, Instance<DatabaseManager> manager,
EventPersistManager eventManager,
EntitiesMetadata entities, Converters converters) {
this.converter = converter;
this.manager = manager;
Expand All @@ -54,7 +54,7 @@ class DefaultSemistructuredTemplate extends AbstractSemistructuredTemplate {
}

@Override
protected ColumnEntityConverter converter() {
protected EntityConverter converter() {
return converter;
}

Expand All @@ -64,7 +64,7 @@ protected DatabaseManager manager() {
}

@Override
protected ColumnEventPersistManager eventManager() {
protected EventPersistManager eventManager() {
return eventManager;
}

Expand Down
Loading

0 comments on commit 5eb150c

Please sign in to comment.