Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package my.bookshop.handlers.hierarchy;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

import com.sap.cds.ql.Select;
import com.sap.cds.services.cds.CdsReadEventContext;
import com.sap.cds.services.cds.CqnService;
import com.sap.cds.services.handler.EventHandler;
import com.sap.cds.services.handler.annotations.Before;
import com.sap.cds.services.handler.annotations.ServiceName;
import com.sap.cds.services.persistence.PersistenceService;

import cds.gen.adminservice.AdminService_;
import cds.gen.adminservice.GenreHierarchy_;

@Component
@Profile("default") // non-HANA
@ServiceName(AdminService_.CDS_NAME)
/**
* Fallback to plain representation
*/
public class HierarchyFallbackHandler implements EventHandler {

private final PersistenceService db;

HierarchyFallbackHandler(PersistenceService db) {
this.db = db;
}

@Before(event = CqnService.EVENT_READ, entity = GenreHierarchy_.CDS_NAME)
public void readGenreHierarchy(CdsReadEventContext event) {
if (event.getCqn().transformations().size() < 1) {
return;
}
event.setResult(db.run(Select.from(GenreHierarchy_.class)));
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package my.bookshop.handlers;
package my.bookshop.handlers.hierarchy;

import static cds.gen.catalogservice.CatalogService_.GENRE_HIERARCHY;

import java.util.ArrayDeque;
import java.util.Comparator;
Expand All @@ -21,12 +23,12 @@
import com.sap.cds.ql.cqn.CqnSelect;
import com.sap.cds.ql.cqn.CqnValue;
import com.sap.cds.ql.cqn.Modifier;
import com.sap.cds.ql.cqn.transformation.CqnTopLevelsTransformation;
import com.sap.cds.ql.cqn.transformation.CqnAncestorsTransformation;
import com.sap.cds.ql.cqn.transformation.CqnDescendantsTransformation;
import com.sap.cds.ql.cqn.transformation.CqnFilterTransformation;
import com.sap.cds.ql.cqn.transformation.CqnSearchTransformation;
import com.sap.cds.ql.cqn.transformation.CqnOrderByTransformation;
import com.sap.cds.ql.cqn.transformation.CqnSearchTransformation;
import com.sap.cds.ql.cqn.transformation.CqnTopLevelsTransformation;
import com.sap.cds.ql.cqn.transformation.CqnTransformation;
import com.sap.cds.services.cds.CdsReadEventContext;
import com.sap.cds.services.cds.CqnService;
Expand All @@ -39,8 +41,6 @@
import cds.gen.catalogservice.GenreHierarchy;
import cds.gen.catalogservice.GenreHierarchy_;

import static cds.gen.catalogservice.CatalogService_.GENRE_HIERARCHY;

@Component
@Profile("default") // non-HANA
@ServiceName(CatalogService_.CDS_NAME)
Expand All @@ -54,11 +54,11 @@
* The handler is neither functionally complete nor correct for all requests. It
* is not intended as a blue-print for custom code.
*/
public class HierarchyHandler implements EventHandler {
public class HierarchyReadOnlyHandler implements EventHandler {

private final PersistenceService db;

HierarchyHandler(PersistenceService db) {
HierarchyReadOnlyHandler(PersistenceService db) {
this.db = db;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package my.bookshop.handlers;
package my.bookshop.handlers.hierarchy;

import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;
import org.junit.jupiter.api.Test;

import cds.gen.catalogservice.GenreHierarchy;
import my.bookshop.handlers.HierarchyHandler.Sorter;
import my.bookshop.handlers.hierarchy.HierarchyReadOnlyHandler.Sorter;

public class HierarchyHandlerSorterTest {

Expand Down