Fixed Query
This commit is contained in:
parent
b62f51e53c
commit
62db808543
|
@ -35,7 +35,7 @@ public class JsonQueryConsistsOf extends JsonQueryERElement{
|
||||||
consistsOfBuffer.append(direction.opposite().name().toLowerCase());
|
consistsOfBuffer.append(direction.opposite().name().toLowerCase());
|
||||||
consistsOfBuffer.append("V(\"");
|
consistsOfBuffer.append("V(\"");
|
||||||
consistsOfBuffer.append(requestedResourceType);
|
consistsOfBuffer.append(requestedResourceType);
|
||||||
consistsOfBuffer.append("\") FROM ("); // Open ( 1
|
consistsOfBuffer.append("\") FROM ( "); // Open ( 1
|
||||||
|
|
||||||
int size = jsonNode.size();
|
int size = jsonNode.size();
|
||||||
if(size > 2) {
|
if(size > 2) {
|
||||||
|
@ -46,22 +46,17 @@ public class JsonQueryConsistsOf extends JsonQueryERElement{
|
||||||
consistsOfBuffer.append(direction.name().toLowerCase());
|
consistsOfBuffer.append(direction.name().toLowerCase());
|
||||||
consistsOfBuffer.append("E(\"");
|
consistsOfBuffer.append("E(\"");
|
||||||
consistsOfBuffer.append(type);
|
consistsOfBuffer.append(type);
|
||||||
consistsOfBuffer.append("\") FROM ("); // Open ( 2
|
consistsOfBuffer.append("\") FROM ( "); // Open ( 2
|
||||||
|
|
||||||
if(!entryPoint) {
|
if(!entryPoint) {
|
||||||
StringBuffer buffer = new 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(direction.opposite().name().toLowerCase());
|
buffer.append(direction.opposite().name().toLowerCase());
|
||||||
buffer.append("E(\"");
|
buffer.append("E(\"");
|
||||||
buffer.append(type);
|
buffer.append(type);
|
||||||
buffer.append("\") FROM (");
|
buffer.append("\") FROM ( ");
|
||||||
buffer.append(stringBuffer);
|
buffer.append(stringBuffer);
|
||||||
buffer.append(")");
|
buffer.append(")");
|
||||||
|
|
||||||
stringBuffer = buffer;
|
stringBuffer = buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,14 +22,14 @@ public class JsonQueryFacet extends JsonQueryERElement{
|
||||||
newBuffer.append("SELECT FROM ");
|
newBuffer.append("SELECT FROM ");
|
||||||
|
|
||||||
if(!entryPoint) {
|
if(!entryPoint) {
|
||||||
newBuffer.append(" (");
|
newBuffer.append("( ");
|
||||||
newBuffer.append("TRAVERSE inV(\"");
|
newBuffer.append("TRAVERSE inV(\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
newBuffer.append(type);
|
newBuffer.append(type);
|
||||||
|
|
||||||
if(!entryPoint) {
|
if(!entryPoint) {
|
||||||
newBuffer.append("\") FROM (");
|
newBuffer.append("\") FROM ( ");
|
||||||
newBuffer.append(stringBuffer);
|
newBuffer.append(stringBuffer);
|
||||||
newBuffer.append(")");
|
newBuffer.append(")");
|
||||||
newBuffer.append(")");
|
newBuffer.append(")");
|
||||||
|
|
|
@ -31,16 +31,26 @@ public class JsonQueryIsRelatedTo extends JsonQueryERElement{
|
||||||
|
|
||||||
int size = jsonNode.size();
|
int size = jsonNode.size();
|
||||||
if(size > 2) {
|
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 ");
|
if(!entryPoint) {
|
||||||
buffer.append(direction.opposite().name().toLowerCase());
|
buffer.append("TRAVERSE ");
|
||||||
buffer.append("E(\"");
|
buffer.append(direction.opposite().name().toLowerCase());
|
||||||
buffer.append(type);
|
buffer.append("E(\"");
|
||||||
buffer.append("\") FROM (");
|
buffer.append(type);
|
||||||
buffer.append(stringBuffer);
|
buffer.append("\") FROM ( ");
|
||||||
buffer.append(")");
|
buffer.append(stringBuffer);
|
||||||
|
buffer.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
stringBuffer = buffer;
|
stringBuffer = buffer;
|
||||||
|
@ -79,17 +89,19 @@ public class JsonQueryIsRelatedTo extends JsonQueryERElement{
|
||||||
stringBuffer = jsonQueryResource.analize(stringBuffer);
|
stringBuffer = jsonQueryResource.analize(stringBuffer);
|
||||||
|
|
||||||
StringBuffer buffer = new StringBuffer();
|
StringBuffer buffer = new StringBuffer();
|
||||||
buffer.append(" TRAVERSE ");
|
buffer.append("TRAVERSE ");
|
||||||
buffer.append(direction.opposite().name().toLowerCase());
|
buffer.append(direction.opposite().name().toLowerCase());
|
||||||
buffer.append("V(\"");
|
buffer.append("V(\"");
|
||||||
buffer.append(requestedResourceType);
|
buffer.append(requestedResourceType);
|
||||||
buffer.append("\").");
|
buffer.append("\") FROM ( ");
|
||||||
|
buffer.append("TRAVERSE ");
|
||||||
buffer.append(direction.name().toLowerCase());
|
buffer.append(direction.name().toLowerCase());
|
||||||
buffer.append("E(\"");
|
buffer.append("E(\"");
|
||||||
buffer.append(type);
|
buffer.append(type);
|
||||||
buffer.append("\") FROM (");
|
buffer.append("\") FROM ( ");
|
||||||
buffer.append(stringBuffer);
|
buffer.append(stringBuffer);
|
||||||
buffer.append(")");
|
buffer.append(")");
|
||||||
|
buffer.append(")");
|
||||||
stringBuffer = buffer;
|
stringBuffer = buffer;
|
||||||
|
|
||||||
return stringBuffer;
|
return stringBuffer;
|
||||||
|
|
|
@ -20,49 +20,66 @@ public class JsonQueryResource extends JsonQueryERElement {
|
||||||
@Override
|
@Override
|
||||||
protected StringBuffer analize(StringBuffer stringBuffer) throws SchemaNotFoundException, InvalidQueryException {
|
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;
|
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; i<isRelatedToArray.size(); i++) {
|
||||||
|
JsonNode isRelatedToJsonNode = isRelatedToArray.get(i);
|
||||||
|
JsonQueryIsRelatedTo jsonQueryIsRelatedTo = new JsonQueryIsRelatedTo(isRelatedToJsonNode);
|
||||||
|
jsonQueryIsRelatedTo.setRequestedResourceType(type);
|
||||||
|
jsonQueryIsRelatedTo.setEntryPoint(entryPoint && i==0);
|
||||||
|
stringBuffer = jsonQueryIsRelatedTo.analize(stringBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
ArrayNode consistsOfArray = (ArrayNode) jsonNode.get(Resource.CONSISTS_OF_PROPERTY);
|
ArrayNode consistsOfArray = (ArrayNode) jsonNode.get(Resource.CONSISTS_OF_PROPERTY);
|
||||||
if(consistsOfArray!=null && consistsOfArray.size()>0) {
|
if(consistsOfArray!=null && consistsOfArray.size()>0) {
|
||||||
initFound = true;
|
|
||||||
for(int i=0; i<consistsOfArray.size(); i++) {
|
for(int i=0; i<consistsOfArray.size(); i++) {
|
||||||
JsonNode consistsOfJsonNode = consistsOfArray.get(i);
|
JsonNode consistsOfJsonNode = consistsOfArray.get(i);
|
||||||
JsonQueryConsistsOf jsonQueryConsistsOf = new JsonQueryConsistsOf(consistsOfJsonNode);
|
JsonQueryConsistsOf jsonQueryConsistsOf = new JsonQueryConsistsOf(consistsOfJsonNode);
|
||||||
jsonQueryConsistsOf.setRequestedResourceType(type);
|
jsonQueryConsistsOf.setRequestedResourceType(type);
|
||||||
jsonQueryConsistsOf.setDirection(Direction.IN);
|
jsonQueryConsistsOf.setDirection(Direction.IN);
|
||||||
jsonQueryConsistsOf.setEntryPoint(entryPoint && i==0);
|
jsonQueryConsistsOf.setEntryPoint(entryPoint && !initFound && i==0);
|
||||||
stringBuffer = jsonQueryConsistsOf.analize(stringBuffer);
|
stringBuffer = jsonQueryConsistsOf.analize(stringBuffer);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
ArrayNode isRelatedToArray = (ArrayNode) jsonNode.get(Resource.IS_RELATED_TO_PROPERTY);
|
|
||||||
if(isRelatedToArray!=null && isRelatedToArray.size()>0) {
|
|
||||||
for(int i=0; i<isRelatedToArray.size(); i++) {
|
|
||||||
JsonNode isRelatedToJsonNode = isRelatedToArray.get(i);
|
|
||||||
JsonQueryIsRelatedTo jsonQueryIsRelatedTo = new JsonQueryIsRelatedTo(isRelatedToJsonNode);
|
|
||||||
jsonQueryIsRelatedTo.setRequestedResourceType(type);
|
|
||||||
jsonQueryIsRelatedTo.setEntryPoint(entryPoint && !initFound && i==0);
|
|
||||||
stringBuffer = jsonQueryIsRelatedTo.analize(stringBuffer);
|
|
||||||
}
|
|
||||||
initFound = true; // Must be set after the cycle and not before
|
initFound = true; // Must be set after the cycle and not before
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if(!initFound) {
|
if(!initFound) {
|
||||||
if(entryPoint) {
|
if(entryPoint) {
|
||||||
stringBuffer = new StringBuffer();
|
stringBuffer = new StringBuffer();
|
||||||
stringBuffer.append("SELECT FROM ");
|
stringBuffer.append("SELECT FROM ");
|
||||||
stringBuffer.append(type);
|
stringBuffer.append(type);
|
||||||
}else {
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
// else {
|
||||||
|
// 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;
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
return stringBuffer;
|
return stringBuffer;
|
||||||
|
|
Loading…
Reference in New Issue