1 19 package org.apache.cayenne.access.jdbc; 20 21 import org.apache.cayenne.ejbql.EJBQLBaseVisitor; 22 import org.apache.cayenne.ejbql.EJBQLExpression; 23 24 30 class EJBQLSelectTranslator extends EJBQLBaseVisitor { 31 32 private EJBQLTranslationContext context; 33 34 EJBQLSelectTranslator(EJBQLTranslationContext context) { 35 this.context = context; 36 } 37 38 EJBQLTranslationContext getContext() { 39 return context; 40 } 41 42 public boolean visitDistinct(EJBQLExpression expression) { 43 context.append(" DISTINCT"); 44 return true; 45 } 46 47 public boolean visitFrom(EJBQLExpression expression, int finishedChildIndex) { 48 context.append(" FROM"); 49 expression.visit(new EJBQLFromTranslator(context)); 50 return false; 51 } 52 53 public boolean visitOrderBy(EJBQLExpression expression) { 54 context.append(" ORDER BY"); 55 expression.visit(new EJBQLOrderByTranslator(context)); 56 return false; 57 } 58 59 public boolean visitSelect(EJBQLExpression expression) { 60 context.append("SELECT"); 61 return true; 62 } 63 64 public boolean visitSelectExpressions(EJBQLExpression expression) { 65 expression.visit(new EJBQLSelectColumnsTranslator(context)); 66 return false; 67 } 68 69 public boolean visitWhere(EJBQLExpression expression) { 70 context.append(" WHERE"); 71 expression.visit(new EJBQLConditionTranslator(context)); 72 return false; 73 } 74 } 75 | Popular Tags |