public class STSSuiteSorterRule implements SorterRule, Sorter {
- @Override
- public boolean isCompatible(Class<?> contentType) {
- return contentType.equals(Resource.class);
- }
-
- @Override
- public Sorter getSorter(ReadGraph graph, Object content) throws DatabaseException {
- return this;
- }
-
- @Override
- public void sort(ReadGraph graph, BrowseContext context, List<NodeContext> nodes) throws DatabaseException
- {
- try {
- STSTestComparator stc = new STSTestComparator();
- stc.graph = graph;
- Collections.sort(nodes, stc);
- } catch (RuntimeDatabaseException e) {
- if (e.getCause()!=null && e.getCause() instanceof DatabaseException) throw (DatabaseException) e.getCause();
- throw e;
- }
- }
-
- static class STSTestQuery extends ResourceRead<Pair<Integer, String>> {
-
- public STSTestQuery(Resource resource) {
- super(resource);
- }
-
- @Override
- public Pair<Integer, String> perform(ReadGraph graph) throws DatabaseException {
- Layer0 L0 = Layer0.getInstance(graph);
- TestsResource TESTS = TestsResource.getInstance(graph);
-
- String name = graph.getRelatedValue2(resource, L0.HasName, Bindings.STRING);
- Integer priority = graph.getRelatedValue2(resource, TESTS.STSTest_executionPriority, Bindings.INTEGER);
-
- return new Pair<Integer, String>(priority, name);
- }
-
- }
-
- static class STSTestComparator implements Comparator<NodeContext> {
- ReadGraph graph;
-
- @Override
- public int compare(NodeContext nc1, NodeContext nc2) {
- Resource r1 = (Resource) nc1.getConstant(BuiltinKeys.INPUT);
- Resource r2 = (Resource) nc2.getConstant(BuiltinKeys.INPUT);
-
- try {
- Pair<Integer, String> test1 = graph.sync(new STSTestQuery(r1));
- Pair<Integer, String> test2 = graph.sync(new STSTestQuery(r2));
+ @Override
+ public boolean isCompatible(Class<?> contentType) {
+ return contentType.equals(Resource.class);
+ }
+
+ @Override
+ public Sorter getSorter(ReadGraph graph, Object content) throws DatabaseException {
+ return this;
+ }
+
+ @Override
+ public void sort(ReadGraph graph, BrowseContext context, List<NodeContext> nodes) throws DatabaseException
+ {
+ try {
+ STSTestComparator stc = new STSTestComparator();
+ stc.graph = graph;
+ Collections.sort(nodes, stc);
+ } catch (RuntimeDatabaseException e) {
+ if (e.getCause()!=null && e.getCause() instanceof DatabaseException) throw (DatabaseException) e.getCause();
+ throw e;
+ }
+ }
+
+ static class STSTestQuery extends ResourceRead<Pair<Integer, String>> {
+
+ public STSTestQuery(Resource resource) {
+ super(resource);
+ }
+
+ @Override
+ public Pair<Integer, String> perform(ReadGraph graph) throws DatabaseException {
+ Layer0 L0 = Layer0.getInstance(graph);
+ TestsResource TESTS = TestsResource.getInstance(graph);
+ String name = graph.getRelatedValue2(resource, L0.HasName, Bindings.STRING);
+ if(graph.isInstanceOf(resource, TESTS.STSTest)) {
+ Integer priority = graph.getRelatedValue2(resource, TESTS.STSTest_executionPriority, Bindings.INTEGER);
+ return new Pair<Integer, String>(priority, name);
+ } else {
+ return new Pair<Integer, String>(0, name);
+ }
+
+ }
+
+ }
+
+ static class STSTestComparator implements Comparator<NodeContext> {
+ ReadGraph graph;
+
+ @Override
+ public int compare(NodeContext nc1, NodeContext nc2) {
+ Resource r1 = (Resource) nc1.getConstant(BuiltinKeys.INPUT);
+ Resource r2 = (Resource) nc2.getConstant(BuiltinKeys.INPUT);
+
+ try {
+ Pair<Integer, String> test1 = graph.sync(new STSTestQuery(r1));
+ Pair<Integer, String> test2 = graph.sync(new STSTestQuery(r2));
if (test1.first < test2.first)
return -1;
else if (test1.first > test2.first)
return 1;
else return AlphanumComparator.COMPARATOR.compare(test1.second, test2.second);
-
- } catch (DatabaseException e) {
- throw new RuntimeDatabaseException(e);
- }
- }
- }
+
+ } catch (DatabaseException e) {
+ throw new RuntimeDatabaseException(e);
+ }
+ }
+ }
}