Skip to content

Commit

Permalink
feat: move methods to nosql!
Browse files Browse the repository at this point in the history
Signed-off-by: Otavio Santana <otaviopolianasantana@gmail.com>
  • Loading branch information
otaviojava committed Apr 10, 2024
1 parent c09bac6 commit a08c29d
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 31 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ public List<String> apply(MethodMetadata methodMetadata) {
return List.of("this.template.insert(" + parameter.name() + ")",
"long result = java.util.stream.StreamSupport.stream(" + parameter.name() + ".spliterator(), false).count()");
}
return Collections.singletonList( "var result = this.template.insert(" + parameter.name() + ")");
return Collections.singletonList( "var result = StreamSupport.stream(this.template.insert(" + parameter.name() + ").spliterator(), false).toList()");
} else if(parameter.isArray()){
if(isVoid) {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ public List<String> apply(MethodMetadata metadata) {
lines.add("org.eclipse.jnosql.communication.query.DeleteQuery delete = supplier.apply(\"" +
metadata.getMethodName() + "\", metadata.name())");
lines.add("org.eclipse.jnosql.communication.semistructured.CommunicationObserverParser parser = " + SPACE +
"org.eclipse.jnosql.mapping.semistructured.query.RepositorySemistructuredObserverParser.of(metadata)");
"org.eclipse.jnosql.mapping.semistructured.query.RepositorySemiStructuredObserverParser.of(metadata)");
lines.add("org.eclipse.jnosql.communication.semistructured.DeleteQueryParams queryParams = " + SPACE +
"DELETE_PARSER.apply(delete, parser)");
lines.add("org.eclipse.jnosql.communication.Params params = queryParams.params()");
Expand Down Expand Up @@ -123,7 +123,7 @@ private static void feedSelectQuery(MethodMetadata metadata, List<String> lines)
lines.add("org.eclipse.jnosql.communication.query.SelectQuery selectQuery = " + SPACE +
"supplier.apply(\"" + metadata.getMethodName() + "\", metadata.name())");
lines.add("org.eclipse.jnosql.communication.semistructured.CommunicationObserverParser parser = " + SPACE +
"org.eclipse.jnosql.mapping.semistructured.query.RepositorySemistructuredObserverParser.of(metadata)");
"org.eclipse.jnosql.mapping.semistructured.query.RepositorySemiStructuredObserverParser.of(metadata)");
lines.add("org.eclipse.jnosql.communication.semistructured.QueryParams queryParams = " + SPACE +
"SELECT_PARSER.apply(selectQuery, parser)");
if (metadata.hasSpecialParameter()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
*/
package {{package}};

import jakarta.data.Order;
import jakarta.data.Sort;
import jakarta.data.page.Page;
import jakarta.data.page.PageRequest;
Expand All @@ -35,6 +36,7 @@ import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import org.eclipse.jnosql.mapping.Database;
import org.eclipse.jnosql.mapping.DatabaseType;
import org.eclipse.jnosql.mapping.semistructured.SemiStructuredTemplate;

import static java.util.Objects.nonNull;
import static java.util.Objects.requireNonNull;
Expand All @@ -55,12 +57,12 @@ public class {{className}} implements {{repository}} {
new org.eclipse.jnosql.communication.semistructured.DeleteQueryParser();
{{/methods.isEmpty}}

private final SemistructuredTemplate template;
private final SemiStructuredTemplate template;

private final EntityMetadata metadata;

@jakarta.inject.Inject
public {{className}}(@Database(value = DatabaseType.{{providerType}}) SemistructuredTemplate template) {
public {{className}}(@Database(value = DatabaseType.{{providerType}}) SemiStructuredTemplate template) {
this.template = Objects.requireNonNull(template, "template is required");
EntitiesMetadata entities = LiteEntitiesMetadata.INSTANCE;
this.metadata = entities.get({{entityType}}.class);
Expand All @@ -71,7 +73,7 @@ public class {{className}} implements {{repository}} {
this.metadata = null;
}

SemistructuredTemplate template(){
SemiStructuredTemplate template(){
return template;
}

Expand All @@ -91,7 +93,7 @@ public class {{className}} implements {{repository}} {
}

@Override
public <S extends {{entityType}}> Iterable<S> saveAll(Iterable<S> entities) {
public <S extends {{entityType}}> List<S> saveAll(List<S> entities) {
requireNonNull(entities, "entities is required");
return StreamSupport.stream(entities.spliterator(), false).map(this::save).collect(toList());
}
Expand All @@ -110,23 +112,34 @@ public class {{className}} implements {{repository}} {
}


{{#element.isNoSQLRepository}}
@Override
public void deleteAll() {
template().deleteAll(getEntityClass());
}

@Override
public void deleteByIdIn(Iterable<{{keyType}}> ids) {
requireNonNull(ids, "ids is required");
ids.forEach(this::deleteById);
}

@Override
public void deleteAll(Iterable<? extends {{entityType}}> entities) {
requireNonNull(entities, "entities is required");
entities.forEach(this::delete);
public void deleteAll(List<? extends {{entityType}}> entities) {
requireNonNull(entities, "entities is required");
entities.forEach(this::delete);
}

{{#element.isNoSQLRepository}}
@Override
public void deleteAll() {
template().deleteAll(getEntityClass());
public long countBy() {
return template().count(getEntityClass());
}

@Override
public boolean existsById({{keyType}} id) {
return findById(id).isPresent();
}

{{/element.isNoSQLRepository}}

@Override
Expand All @@ -142,26 +155,16 @@ public class {{className}} implements {{repository}} {
.flatMap(optionalToStream());
}

@Override
public long countBy() {
return template().count(getEntityClass());
}

@Override
public boolean existsById({{keyType}} id) {
return findById(id).isPresent();
}

@Override
public Stream<{{entityType}}> findAll() {
SelectQuery query = SelectQuery.select().from(entityMetadata().name()).build();
return template().select(query);
}

public Page<{{entityType}}> findAll(PageRequest<{{entityType}}> pageRequest) {
public Page<{{entityType}}> findAll(PageRequest pageRequest, Order<{{entityType}}> order) {
Objects.requireNonNull(pageRequest, "pageRequest is required");
EntityMetadata metadata = entityMetadata();
List<Sort<?>> sorts = pageRequest.sorts().stream().collect(toList());
List<Sort<?>> sorts = order.sorts().stream().collect(toList());
SelectQuery query = new MappingQuery(sorts,
pageRequest.size(), NoSQLPage.skip(pageRequest), null ,metadata.name());
Expand All @@ -174,20 +177,20 @@ public class {{className}} implements {{repository}} {
return template().insert(entity);
}

public <S extends {{entityType}}> Iterable<S> insertAll(Iterable<S> entities) {
public <S extends {{entityType}}> List<S> insertAll(List<S> entities) {
Objects.requireNonNull(entities, "entities is required");
return template().insert(entities);
return StreamSupport.stream(template().insert(entities).spliterator(), false).toList();
}

public boolean update({{entityType}} entity) {
public {{entityType}} update({{entityType}} entity) {
Objects.requireNonNull(entity, "entity is required");
return template().update(entity) != null;
return template().update(entity);
}

public int updateAll(Iterable<{{entityType}}> entities) {
public <S extends {{entityType}}> List<S> updateAll(List<S> entities) {
Objects.requireNonNull(entities, "entities is required");
template().update(entities);
return (int) StreamSupport.stream(entities.spliterator(), false).count();
return StreamSupport.stream(template().update(entities).spliterator(), false).toList();
}

{{#methods}}
Expand All @@ -203,6 +206,7 @@ public class {{className}} implements {{repository}} {
return {{{returnValue}}};
{{/hasReturn}}
}

{{/methods}}

private FieldMetadata getIdField() {
Expand Down

0 comments on commit a08c29d

Please sign in to comment.