package org.simantics.document.linking.report.templates; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import org.simantics.db.ReadGraph; import org.simantics.db.Resource; import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.adapter.Instances; import org.simantics.document.linking.ontology.DocumentLink; import org.simantics.document.linking.report.Document; public abstract class IndexQueryReport extends DocumentWriter{ protected Resource model; public IndexQueryReport() { } @Override public void start(ReadGraph graph, Resource model, Document writer, Map context) throws Exception { super.start(graph, model, writer, context); this.model = model; } @Override public List getReportItems(ReadGraph graph) throws DatabaseException { DocumentLink sl = DocumentLink.getInstance(graph); Instances instancesQuery = graph.adapt(sl.Source, Instances.class); Collection found = instancesQuery.find(graph, model); List list = new ArrayList(found.size()); list.addAll(found); found = null; sort(list); return list; } public abstract void sort(List items) throws DatabaseException; }