/* Generated By:JJTree: Do not edit this line. OTraverseStatement.java Version 4.3 */
/* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=true,NODE_PREFIX=O,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
package com.orientechnologies.orient.core.sql.parser;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class OTraverseStatement extends OStatement {
public enum Strategy {
DEPTH_FIRST, BREADTH_FIRST
}
protected List<OTraverseProjectionItem> projections = new ArrayList<OTraverseProjectionItem>();
protected OFromClause target;
protected OWhereClause whereClause;
protected OLimit limit;
protected Strategy strategy;
protected OInteger maxDepth;
public OTraverseStatement(int id) {
super(id);
}
public OTraverseStatement(OrientSql p, int id) {
super(p, id);
}
public void toString(Map<Object, Object> params, StringBuilder builder) {
builder.append("TRAVERSE ");
boolean first = true;
for (OTraverseProjectionItem item : projections) {
if (!first) {
builder.append(", ");
}
item.toString(params, builder);
first = false;
}
if (target != null) {
builder.append(" FROM ");
target.toString(params, builder);
}
if (maxDepth != null) {
builder.append(" MAXDEPTH ");
maxDepth.toString(params, builder);
}
if (whereClause != null) {
builder.append(" WHILE ");
whereClause.toString(params, builder);
}
if (limit != null) {
builder.append(" ");
limit.toString(params, builder);
}
if (strategy != null) {
builder.append(" strategy ");
switch (strategy) {
case BREADTH_FIRST:
builder.append("breadth_first");
break;
case DEPTH_FIRST:
builder.append("depth_first");
break;
}
}
}
}
/* JavaCC - OriginalChecksum=47399a3a3d5a423768bbdc70ee957464 (do not edit this line) */