/* 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) */