Skip to content

Commit

Permalink
feat: include pagination offset
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 11, 2024
1 parent 5de008f commit c1b89d6
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@
package org.eclipse.jnosql.lite.mapping.repository;


import jakarta.data.page.CursoredPage;

import javax.lang.model.element.TypeElement;
import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -78,6 +80,25 @@ public List<String> apply(MethodMetadata metadata) {
List<String> lines = new ArrayList<>();
lines.add("java.util.Optional<" + getEntity(metadata) + "> entityResult = prepare.singleResult()");
lines.add(getEntity(metadata) + " resultJNoSQL = entityResult.orElse(null)");
return lines;
}
}, CURSOR_PAGINATION{
@Override
public List<String> apply(MethodMetadata metadata) {
List<String> lines = new ArrayList<>();
lines.add("var preparedStatementJNoSQL = (org.eclipse.jnosql.mapping.semistructured.PreparedStatement) prepareJNoSQL");
lines.add("var selectJNoSQL = preparedStatementJNoSQL.selectQuery().orElseThrow(() ->" +
"\n new jakarta.data.exceptions.MappingException(\"The select query is required\"))");
Parameter pageRequest = metadata.findPageRequest().orElseThrow(() -> new IllegalStateException("The page request is required"));
lines.add(CursoredPage.class.getName() + "<" + getEntity(metadata) + "> resultJNoSQL = template.selectCursor(selectJNoSQL, " + pageRequest.name() + ")");
return lines;
}
}, PAGINATION{

@Override
public List<String> apply(MethodMetadata methodMetadata) {
List<String> lines = new ArrayList<>();

return lines;
}
};
Expand All @@ -100,6 +121,8 @@ static AnnotationQueryRepositoryReturnType of(MethodMetadata metadata) {
case "java.util.Queue", "java.util.Deque" -> QUEUE;
case "java.util.SortedSet", "java.util.TreeSet" -> SORTED_SET;
case "java.util.Optional" -> OPTIONAL;
case "jakarta.data.page.Page", "jakarta.data.page.Slice" -> PAGINATION;
case "jakarta.data.page.CursoredPage" -> CURSOR_PAGINATION;
default -> throw new UnsupportedOperationException("This return is not supported: " + returnType);
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,15 @@ public List<String> apply(MethodMetadata metadata) {
"org.eclipse.jnosql.mapping.core.NoSQLPage.of(entitiesJNoSQL.toList(), " + pageRequest.name() + ")");
return lines;
}
}, CURSOR_PAGINATION{
}, CURSOR_PAGINATION {
@Override
public List<String> apply(MethodMetadata metadata) {
List<String> lines = new ArrayList<>();
Parameter pageRequest = metadata.findPageRequest()
.orElseThrow(() -> new ValidationException("The method " + metadata.getMethodName() + " from " +
metadata.getParametersSignature() + " does not have a Pageable parameter in a pagination cursor method"));

lines.add(CursoredPage.class.getName() + "<" + getEntity(metadata) + "> entitiesJNoSQL = this.template.select(queryJNoSQL, "
lines.add(CursoredPage.class.getName() + "<" + getEntity(metadata) + "> resultJNoSQL = this.template.selectCursor(queryJNoSQL, "
+ pageRequest.name() + ")");
return lines;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ public List<String> apply(MethodMetadata metadata) {
public List<String> apply(MethodMetadata metadata) {
List<String> lines = new ArrayList<>();
Query query = metadata.getQuery();
lines.add("org.eclipse.jnosql.mapping.PreparedStatement prepareJNoSQL = template.prepare(\"" + query.value() + "\")");
lines.add("var prepareJNoSQL = template.prepare(\"" + query.value() + "\")");
for (Parameter parameter : metadata.getParameters()) {
if (parameter.hasParam()) {
Param param = parameter.param();
Expand Down

0 comments on commit c1b89d6

Please sign in to comment.