diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/entities/JsonQueryResource.java b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/entities/JsonQueryResource.java index eb34316..65dfd46 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/entities/JsonQueryResource.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/entities/JsonQueryResource.java @@ -122,6 +122,14 @@ public class JsonQueryResource extends JsonQueryEntity { StringBuffer buffer = new StringBuffer(); + if(!entryPoint) { + buffer.append("\n\t"); + buffer.append(direction.name().toLowerCase()); + buffer.append("V('"); + buffer.append(type); + buffer.append("'"); + } + int isRelatedToSize = 0; ArrayNode consistsOfArray = (ArrayNode) jsonNode.get(Resource.CONSISTS_OF_PROPERTY); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/relations/JsonQueryConsistsOf.java b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/relations/JsonQueryConsistsOf.java index 9cd7699..c449946 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/relations/JsonQueryConsistsOf.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/queries/json/base/relations/JsonQueryConsistsOf.java @@ -141,8 +141,42 @@ public class JsonQueryConsistsOf extends JsonQueryRelation { @Override protected StringBuffer getSpecificMatchQuery(List childrenBreadcrumb) throws SchemaException, ResourceRegistryException { - // TODO Auto-generated method stub - return null; + StringBuffer buffer = new StringBuffer(); + + if(!entryPoint) { + buffer.append("\n\t"); + buffer.append(direction.name().toLowerCase()); + buffer.append("E('"); + buffer.append(type); + buffer.append("'"); + + } + + if(jsonNode.has(ConsistsOf.TARGET_PROPERTY)) { + --size; + JsonNode facetJsonNode = jsonNode.get(ConsistsOf.TARGET_PROPERTY); + JsonQueryFacet jsonQueryFacet = new JsonQueryFacet(facetJsonNode); + jsonQueryFacet.setTraverseBack(true); + buffer = jsonQueryFacet.createMatchQuery(buffer); + } + + if(jsonNode.has(ConsistsOf.SOURCE_PROPERTY)) { + --size; + JsonNode resourceJsonNode = jsonNode.get(ConsistsOf.SOURCE_PROPERTY); + JsonQueryResource jsonQueryResource = new JsonQueryResource(resourceJsonNode); + jsonQueryResource.setTraverseBack(true); + buffer = jsonQueryResource.createMatchQuery(buffer); + } + + if(traverseBack) { + buffer.append("\n\t"); + buffer.append(direction.opposite().name().toLowerCase()); + buffer.append("E('"); + buffer.append(type); + buffer.append("'"); + } + + return buffer; } }