diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryConsistsOf.java b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryConsistsOf.java index 94d6b29..66e562d 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryConsistsOf.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryConsistsOf.java @@ -35,7 +35,7 @@ public class JsonQueryConsistsOf extends JsonQueryERElement{ consistsOfBuffer.append(direction.opposite().name().toLowerCase()); consistsOfBuffer.append("V(\""); consistsOfBuffer.append(requestedResourceType); - consistsOfBuffer.append("\") FROM ("); // Open ( 1 + consistsOfBuffer.append("\") FROM ( "); // Open ( 1 int size = jsonNode.size(); if(size > 2) { @@ -46,22 +46,17 @@ public class JsonQueryConsistsOf extends JsonQueryERElement{ consistsOfBuffer.append(direction.name().toLowerCase()); consistsOfBuffer.append("E(\""); consistsOfBuffer.append(type); - consistsOfBuffer.append("\") FROM ("); // Open ( 2 + consistsOfBuffer.append("\") FROM ( "); // Open ( 2 if(!entryPoint) { StringBuffer buffer = new StringBuffer(); - buffer.append(" TRAVERSE "); - buffer.append(direction.opposite().name().toLowerCase()); - buffer.append("V(\""); - buffer.append(requestedResourceType); - buffer.append("\")."); + buffer.append("TRAVERSE "); buffer.append(direction.opposite().name().toLowerCase()); buffer.append("E(\""); buffer.append(type); - buffer.append("\") FROM ("); + buffer.append("\") FROM ( "); buffer.append(stringBuffer); buffer.append(")"); - stringBuffer = buffer; } diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryFacet.java b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryFacet.java index a8a7123..591efe3 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryFacet.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryFacet.java @@ -22,14 +22,14 @@ public class JsonQueryFacet extends JsonQueryERElement{ newBuffer.append("SELECT FROM "); if(!entryPoint) { - newBuffer.append(" ("); + newBuffer.append("( "); newBuffer.append("TRAVERSE inV(\""); } newBuffer.append(type); if(!entryPoint) { - newBuffer.append("\") FROM ("); + newBuffer.append("\") FROM ( "); newBuffer.append(stringBuffer); newBuffer.append(")"); newBuffer.append(")"); diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryIsRelatedTo.java b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryIsRelatedTo.java index af2f5b9..f106964 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryIsRelatedTo.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryIsRelatedTo.java @@ -31,16 +31,26 @@ public class JsonQueryIsRelatedTo extends JsonQueryERElement{ int size = jsonNode.size(); if(size > 2) { - buffer.append("SELECT FROM ( "); // Open ( SELECT + buffer.append("SELECT FROM ( "); + if(entryPoint) { + buffer.append(type); + } + }else { + if(entryPoint) { + buffer.append("SELECT FROM "); + buffer.append(type); + } } - buffer.append("TRAVERSE "); - buffer.append(direction.opposite().name().toLowerCase()); - buffer.append("E(\""); - buffer.append(type); - buffer.append("\") FROM ("); - buffer.append(stringBuffer); - buffer.append(")"); + if(!entryPoint) { + buffer.append("TRAVERSE "); + buffer.append(direction.opposite().name().toLowerCase()); + buffer.append("E(\""); + buffer.append(type); + buffer.append("\") FROM ( "); + buffer.append(stringBuffer); + buffer.append(")"); + } stringBuffer = buffer; @@ -79,17 +89,19 @@ public class JsonQueryIsRelatedTo extends JsonQueryERElement{ stringBuffer = jsonQueryResource.analize(stringBuffer); StringBuffer buffer = new StringBuffer(); - buffer.append(" TRAVERSE "); + buffer.append("TRAVERSE "); buffer.append(direction.opposite().name().toLowerCase()); buffer.append("V(\""); buffer.append(requestedResourceType); - buffer.append("\")."); + buffer.append("\") FROM ( "); + buffer.append("TRAVERSE "); buffer.append(direction.name().toLowerCase()); buffer.append("E(\""); buffer.append(type); - buffer.append("\") FROM ("); + buffer.append("\") FROM ( "); buffer.append(stringBuffer); buffer.append(")"); + buffer.append(")"); stringBuffer = buffer; return stringBuffer; diff --git a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryResource.java b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryResource.java index 58b7b41..227f19c 100644 --- a/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryResource.java +++ b/src/main/java/org/gcube/informationsystem/resourceregistry/query/json/JsonQueryResource.java @@ -20,49 +20,66 @@ public class JsonQueryResource extends JsonQueryERElement { @Override protected StringBuffer analize(StringBuffer stringBuffer) throws SchemaNotFoundException, InvalidQueryException { + if(!entryPoint) { + StringBuffer newBuffer = new StringBuffer(); + newBuffer.append("TRAVERSE "); + newBuffer.append(direction.name().toLowerCase()); + newBuffer.append("V(\""); + newBuffer.append(type); + newBuffer.append("\") FROM ( "); + newBuffer.append(stringBuffer); + newBuffer.append(")"); + stringBuffer = newBuffer; + } + boolean initFound = false; + ArrayNode isRelatedToArray = (ArrayNode) jsonNode.get(Resource.IS_RELATED_TO_PROPERTY); + if(isRelatedToArray!=null && isRelatedToArray.size()>0) { + initFound = true; + for(int i=0; i0) { - initFound = true; + for(int i=0; i0) { - for(int i=0; i