We'd accidentally conflated SQL expressions and SQL clauses into the one interface SQLExpressionsf, which would allow statements like 'FooRecord.BAR.add(FooRecord.getKey(1))' to compile erroneously. Let SQLExpressions and QueryClauses both be subclasses of a new type SQLFragment, and let our ExpressionVisitor be a FragmentVisitor.
This commit is contained in:
@@ -35,7 +35,7 @@ import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.DepotMarshaller;
|
||||
import com.samskivert.depot.impl.DepotUtil;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* A special form of {@link WhereClause} that uniquely specifies a single database row and thus
|
||||
@@ -60,7 +60,7 @@ public class Key<T extends PersistentRecord> extends WhereClause
|
||||
public Comparable<?>[] getValues () {
|
||||
return _values;
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> builder) {
|
||||
public Object accept (FragmentVisitor<?> builder) {
|
||||
return builder.visit(this);
|
||||
}
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet) {
|
||||
@@ -205,7 +205,7 @@ public class Key<T extends PersistentRecord> extends WhereClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ import com.samskivert.depot.clause.WhereClause;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.DepotUtil;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.LiteralExp;
|
||||
import com.samskivert.depot.impl.operator.In;
|
||||
|
||||
@@ -291,7 +291,7 @@ public abstract class KeySet<T extends PersistentRecord> extends WhereClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.samskivert.depot;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.SQLBuilder;
|
||||
|
||||
/**
|
||||
* Represents a fragment of an SQL statement, generally a clause (WHERE, FROM, ...) or an
|
||||
* expression (1+1, 'foo', "columnName", ...).
|
||||
*/
|
||||
public interface SQLFragment
|
||||
{
|
||||
/**
|
||||
* Most uses of this class have been implemented with a visitor pattern. Create your own
|
||||
* {@link FragmentVisitor} and call this method with it.
|
||||
*
|
||||
* @see SQLBuilder
|
||||
*/
|
||||
public Object accept (FragmentVisitor<?> visitor);
|
||||
|
||||
/**
|
||||
* Adds all persistent classes that are brought into the SQL context by this clause: FROM
|
||||
* clauses, JOINs, UPDATEs, anything that could create a new table abbreviation. This method
|
||||
* should recurse into any subordinate state that may in turn bring in new classes so that
|
||||
* sub-queries work correctly.
|
||||
*/
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet);
|
||||
}
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.LiteralExp;
|
||||
|
||||
/**
|
||||
@@ -81,7 +81,7 @@ public class FieldDefinition implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> visitor)
|
||||
public Object accept (FragmentVisitor<?> visitor)
|
||||
{
|
||||
return visitor.visit(this);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ package com.samskivert.depot.clause;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents a FOR UPDATE clause.
|
||||
@@ -31,7 +31,7 @@ import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
public class ForUpdate implements QueryClause
|
||||
{
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ import com.google.common.collect.Lists;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.impl.DepotUtil;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Completely overrides the FROM clause, if it exists.
|
||||
@@ -63,7 +63,7 @@ public class FromOverride implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents a GROUP BY clause.
|
||||
@@ -42,7 +42,7 @@ public class GroupBy implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Builds actual SQL given a main persistent type and some {@link QueryClause} objects.
|
||||
@@ -62,7 +62,7 @@ public class InsertClause implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.DepotUtil;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.operator.Equals;
|
||||
|
||||
/**
|
||||
@@ -74,7 +74,7 @@ public class Join implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ package com.samskivert.depot.clause;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents a LIMIT/OFFSET clause, for pagination.
|
||||
@@ -47,7 +47,7 @@ public class Limit implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.util.ArrayUtil;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.LiteralExp;
|
||||
|
||||
/**
|
||||
@@ -95,7 +95,7 @@ public class OrderBy implements QueryClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -20,11 +20,11 @@
|
||||
|
||||
package com.samskivert.depot.clause;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.SQLFragment;
|
||||
|
||||
/**
|
||||
* Represents a piece or modifier of an SQL query.
|
||||
*/
|
||||
public interface QueryClause extends SQLExpression
|
||||
public interface QueryClause extends SQLFragment
|
||||
{
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.google.common.collect.Maps;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents a complete select clause.
|
||||
@@ -193,7 +193,7 @@ public class SelectClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import com.samskivert.depot.Ops;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.ValueExp;
|
||||
import com.samskivert.depot.impl.operator.Equals;
|
||||
import com.samskivert.depot.impl.operator.IsNull;
|
||||
@@ -73,7 +73,7 @@ public class Where extends WhereClause
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.clause.Join;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.operator.In;
|
||||
import com.samskivert.depot.impl.operator.IsNull;
|
||||
import com.samskivert.depot.impl.operator.Like;
|
||||
@@ -92,7 +92,7 @@ public class ColumnExp extends FluentExp
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -20,16 +20,12 @@
|
||||
|
||||
package com.samskivert.depot.expression;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.SQLBuilder;
|
||||
import com.samskivert.depot.SQLFragment;
|
||||
|
||||
/**
|
||||
* Represents an SQL expression, e.g. column name, function, or constant.
|
||||
*/
|
||||
public interface SQLExpression
|
||||
public interface SQLExpression extends SQLFragment
|
||||
{
|
||||
/** Used internally to represent the lack of a value. */
|
||||
public static final class NoValue
|
||||
@@ -46,19 +42,4 @@ public interface SQLExpression
|
||||
protected String _reason;
|
||||
}
|
||||
|
||||
/**
|
||||
* Most uses of this class have been implemented with a visitor pattern. Create your own
|
||||
* {@link ExpressionVisitor} and call this method with it.
|
||||
*
|
||||
* @see SQLBuilder
|
||||
*/
|
||||
public Object accept (ExpressionVisitor<?> visitor);
|
||||
|
||||
/**
|
||||
* Adds all persistent classes that are brought into the SQL context by this clause: FROM
|
||||
* clauses, JOINs, UPDATEs, anything that could create a new table abbreviation. This method
|
||||
* should recurse into any subordinate state that may in turn bring in new classes so that
|
||||
* sub-queries work correctly.
|
||||
*/
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet);
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ import com.samskivert.depot.impl.operator.Not;
|
||||
* Implements the base functionality of the SQL-building pass of {@link SQLBuilder}. Dialectal
|
||||
* subclasses of this should be created and returned from {@link SQLBuilder#getBuildVisitor()}.
|
||||
*/
|
||||
public abstract class BuildVisitor implements ExpressionVisitor<Void>
|
||||
public abstract class BuildVisitor implements FragmentVisitor<Void>
|
||||
{
|
||||
public String getQuery ()
|
||||
{
|
||||
|
||||
@@ -100,7 +100,7 @@ import static com.samskivert.depot.Log.log;
|
||||
* TODO: that should be written.
|
||||
*/
|
||||
public class ExpressionEvaluator
|
||||
implements ExpressionVisitor<Object>
|
||||
implements FragmentVisitor<Object>
|
||||
{
|
||||
public <T extends PersistentRecord> ExpressionEvaluator (Class<T> pClass, T pRec)
|
||||
{
|
||||
|
||||
+1
-1
@@ -85,7 +85,7 @@ import com.samskivert.depot.impl.operator.Not;
|
||||
/**
|
||||
* Enumerates visitation methods for every possible SQL expression type.
|
||||
*/
|
||||
public interface ExpressionVisitor<T>
|
||||
public interface FragmentVisitor<T>
|
||||
{
|
||||
public T visit (FieldDefinition fieldOverride);
|
||||
public T visit (FromOverride fromOverride);
|
||||
@@ -39,7 +39,7 @@ import com.samskivert.util.ByteEnum;
|
||||
import static com.samskivert.depot.Log.log;
|
||||
|
||||
/**
|
||||
* At the heart of Depot's SQL generation, this object constructs an {@link ExpressionVisitor}
|
||||
* At the heart of Depot's SQL generation, this object constructs an {@link FragmentVisitor}
|
||||
* object and executes it, constructing SQL and parameter bindings as it recurses.
|
||||
*/
|
||||
public abstract class SQLBuilder
|
||||
|
||||
@@ -30,7 +30,7 @@ import com.samskivert.depot.clause.OrderBy.Order;
|
||||
import com.samskivert.depot.clause.QueryClause;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents an CREATE INDEX instruction to the database.
|
||||
@@ -71,14 +71,14 @@ public class CreateIndexClause
|
||||
return _fields;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
classSet.add(_pClass);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.clause.QueryClause;
|
||||
import com.samskivert.depot.clause.WhereClause;
|
||||
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Builds actual SQL given a main persistent type and some {@link QueryClause} objects.
|
||||
@@ -50,14 +50,14 @@ public class DeleteClause
|
||||
return _where;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
classSet.add(_pClass);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.clause.QueryClause;
|
||||
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents an DROP INDEX instruction to the database.
|
||||
@@ -49,14 +49,14 @@ public class DropIndexClause
|
||||
return _name;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
classSet.add(_pClass);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ import com.samskivert.depot.clause.WhereClause;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Builds actual SQL given a main persistent type and some {@link QueryClause} objects.
|
||||
@@ -81,7 +81,7 @@ public class UpdateClause
|
||||
return _pClass;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
classSet.add(_pClass);
|
||||
@@ -95,8 +95,8 @@ public class UpdateClause
|
||||
}
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.samskivert.depot.impl.expression;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.Function.OneArgFun;
|
||||
|
||||
public abstract class AggregateFun extends OneArgFun
|
||||
@@ -33,7 +33,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Average (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -48,7 +48,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Count (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -63,7 +63,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Every (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -78,7 +78,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Max (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -93,7 +93,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Min (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -108,7 +108,7 @@ public abstract class AggregateFun extends OneArgFun
|
||||
public Sum (SQLExpression argument, boolean distinct) {
|
||||
super(argument, distinct);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.samskivert.depot.impl.expression;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.Function.ManyArgFun;
|
||||
|
||||
public abstract class ConditionalFun
|
||||
@@ -30,7 +30,7 @@ public abstract class ConditionalFun
|
||||
public Coalesce (SQLExpression... args) {
|
||||
super(args);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -42,7 +42,7 @@ public abstract class ConditionalFun
|
||||
public Greatest (SQLExpression... args) {
|
||||
super(args);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -54,7 +54,7 @@ public abstract class ConditionalFun
|
||||
public Least (SQLExpression... args) {
|
||||
super(args);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.samskivert.depot.impl.expression;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.Function.NoArgFun;
|
||||
import com.samskivert.depot.impl.expression.Function.OneArgFun;
|
||||
|
||||
@@ -36,7 +36,7 @@ public abstract class DateFun
|
||||
super(date);
|
||||
_part = part;
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public Part getPart () {
|
||||
@@ -64,7 +64,7 @@ public abstract class DateFun
|
||||
super(date);
|
||||
_truncation= truncation;
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public Truncation getTruncation () {
|
||||
@@ -77,7 +77,7 @@ public abstract class DateFun
|
||||
}
|
||||
|
||||
public static class Now extends NoArgFun {
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* A code for representing a date interval.
|
||||
@@ -47,13 +47,13 @@ public class IntervalExp
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* An expression for things we don't support natively, e.g. COUNT(*).
|
||||
@@ -38,13 +38,13 @@ public class LiteralExp
|
||||
_text = text;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.samskivert.depot.impl.expression;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.Function.NoArgFun;
|
||||
import com.samskivert.depot.impl.expression.Function.OneArgFun;
|
||||
import com.samskivert.depot.impl.expression.Function.TwoArgFun;
|
||||
@@ -32,7 +32,7 @@ public abstract class NumericalFun
|
||||
public Abs (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -44,7 +44,7 @@ public abstract class NumericalFun
|
||||
public Ceil (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -56,7 +56,7 @@ public abstract class NumericalFun
|
||||
public Exp (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -68,7 +68,7 @@ public abstract class NumericalFun
|
||||
public Floor (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -80,7 +80,7 @@ public abstract class NumericalFun
|
||||
public Ln (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -92,7 +92,7 @@ public abstract class NumericalFun
|
||||
public Log10 (SQLExpression value) {
|
||||
super(value);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -101,7 +101,7 @@ public abstract class NumericalFun
|
||||
}
|
||||
|
||||
public static class Pi extends NoArgFun {
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -113,7 +113,7 @@ public abstract class NumericalFun
|
||||
public Power (SQLExpression value, SQLExpression power) {
|
||||
super(value, power);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -128,7 +128,7 @@ public abstract class NumericalFun
|
||||
}
|
||||
|
||||
public static class Random extends NoArgFun {
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -140,7 +140,7 @@ public abstract class NumericalFun
|
||||
public Round (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -152,7 +152,7 @@ public abstract class NumericalFun
|
||||
public Sign (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -164,7 +164,7 @@ public abstract class NumericalFun
|
||||
public Sqrt (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -176,7 +176,7 @@ public abstract class NumericalFun
|
||||
public Trunc (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
package com.samskivert.depot.impl.expression;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.Function.ManyArgFun;
|
||||
import com.samskivert.depot.impl.expression.Function.OneArgFun;
|
||||
import com.samskivert.depot.impl.expression.Function.TwoArgFun;
|
||||
@@ -32,7 +32,7 @@ public abstract class StringFun
|
||||
public Length (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -44,7 +44,7 @@ public abstract class StringFun
|
||||
public Lower (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -56,7 +56,7 @@ public abstract class StringFun
|
||||
public Position (SQLExpression substring, SQLExpression string) {
|
||||
super(substring, string);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -74,7 +74,7 @@ public abstract class StringFun
|
||||
public Substring (SQLExpression string, SQLExpression from, SQLExpression count) {
|
||||
super(string, from, count);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -86,7 +86,7 @@ public abstract class StringFun
|
||||
public Trim (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
@@ -98,7 +98,7 @@ public abstract class StringFun
|
||||
public Upper (SQLExpression argument) {
|
||||
super(argument);
|
||||
}
|
||||
public Object accept (ExpressionVisitor<?> visitor) {
|
||||
public Object accept (FragmentVisitor<?> visitor) {
|
||||
return visitor.visit(this);
|
||||
}
|
||||
public String getCanonicalFunctionName () {
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.FluentExp;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* A Java value that is bound as a parameter to the query, e.g. 1 or 'abc'.
|
||||
@@ -36,13 +36,13 @@ public class ValueExp extends FluentExp
|
||||
_value = value;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
package com.samskivert.depot.impl.operator;
|
||||
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.depot.impl.expression.ValueExp;
|
||||
|
||||
/**
|
||||
@@ -32,8 +32,8 @@ public abstract class BinaryOperator extends BaseOperator
|
||||
*/
|
||||
public abstract Object evaluate (Object left, Object right);
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.clause.SelectClause;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* The SQL 'exists' operator.
|
||||
@@ -38,7 +38,7 @@ public class Exists
|
||||
_clause = clause;
|
||||
}
|
||||
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* The SQL 'in (...)' operator.
|
||||
@@ -57,13 +57,13 @@ public class In
|
||||
return _values;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
_column.addClasses(classSet);
|
||||
|
||||
@@ -25,7 +25,7 @@ import java.util.Collection;
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.ColumnExp;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* The SQL 'is null' operator.
|
||||
@@ -43,13 +43,13 @@ public class IsNull
|
||||
return _column;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents an operator with any number of operands.
|
||||
@@ -29,13 +29,13 @@ public abstract class MultiOperator extends BaseOperator
|
||||
*/
|
||||
public abstract Object evaluate (Object[] values);
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@Override // from SQLExpression
|
||||
@Override // from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
for (SQLExpression operand : _args) {
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* Represents the truth negation of another conditon.
|
||||
@@ -42,13 +42,13 @@ public class Not
|
||||
return _condition;
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
// from SQLFragment
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
// from SQLFragment
|
||||
public void addClasses (Collection<Class<? extends PersistentRecord>> classSet)
|
||||
{
|
||||
_condition.addClasses(classSet);
|
||||
|
||||
@@ -27,7 +27,7 @@ import com.google.common.collect.Lists;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.SQLExpression;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
import com.samskivert.util.Tuple;
|
||||
|
||||
/**
|
||||
@@ -57,7 +57,7 @@ public class Case
|
||||
}
|
||||
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ import java.util.Collection;
|
||||
|
||||
import com.samskivert.depot.PersistentRecord;
|
||||
import com.samskivert.depot.expression.FluentExp;
|
||||
import com.samskivert.depot.impl.ExpressionVisitor;
|
||||
import com.samskivert.depot.impl.FragmentVisitor;
|
||||
|
||||
/**
|
||||
* An attempt at a dialect-agnostic full-text search condition, such as MySQL's MATCH() and
|
||||
@@ -35,7 +35,7 @@ public class FullText
|
||||
public class Rank extends FluentExp
|
||||
{
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
@@ -60,7 +60,7 @@ public class FullText
|
||||
public class Match extends FluentExp
|
||||
{
|
||||
// from SQLExpression
|
||||
public Object accept (ExpressionVisitor<?> builder)
|
||||
public Object accept (FragmentVisitor<?> builder)
|
||||
{
|
||||
return builder.visit(this);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user