@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.staticMethodCallValue(this, input); } public StaticMethodCallValue withNewArgs(List<TypedValue> newArgs)
@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.virtualMethodCallValue(this, input); } public VirtualMethodCallValue withNewArgs(List<TypedValue> newArgs, TypedValue newBase)
public TypedValueRewriterWalker(TypedValueVisitor<I, TypedValue, E> rewriter) { this(rewriter, new TypedValueVisitor<I, I, E>() { @Override public I defaultValue(TypedValue val, I in) throws E { return in; }}); }
public O comparisonOpValue(TypedValue.ComparisonValue val, I in) throws E { return binaryOpValue(val, in); } public O mathOpValue(TypedValue.MathOpValue val, I in) throws E
@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.booleanConstantValue(this, input); } @Override public Boolean getConstant() { return val; }
@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.argValue(this, input); } @Override
@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.byteConstantValue(this, input); } @Override public Byte getConstant() { return val; }
@Override public <I,O,E extends Exception> O visit(TypedValueVisitor<I,O,E> visitor, I input) throws E { return visitor.binaryOpValue(this, input); } public BinaryOperationValue withNewChildren(TypedValue newLeft, TypedValue newRight)
@Override public TypedValue staticMethodCallValue(MethodCallValue.StaticMethodCallValue val, I in) { // TODO: This changes the semantics of things a little bit MethodSignature sig = val.getSignature(); if (additionalStaticComparisonMethods.containsKey(sig)) { return new TypedValue.ComparisonValue(additionalStaticComparisonMethods.get(sig), val.args.get(0), val.args.get(1)); } return super.staticMethodCallValue(val, in); }
return super.virtualMethodCallValue(val, in);
public O mathOpValue(TypedValue.MathOpValue val, I in) throws E { return binaryOpValue(val, in); }
@Override public Boolean staticMethodCallValue(StaticMethodCallValue val, Boolean in) throws RuntimeException { if (val.getSignature().equals(TransformationClassAnalyzer.booleanValueOf)) return true; return super.staticMethodCallValue(val, in); } @Override
return super.virtualMethodCallValue(val, in);
@Override public JPQLQuery<?> staticMethodCallValue(MethodCallValue.StaticMethodCallValue val, SymbExPassDown in) throws TypedValueVisitorException { MethodSignature sig = val.getSignature(); if (sig.equals(TransformationClassAnalyzer.streamFrom)) { JPQLQuery<?> nLink = handlePossibleNavigationalLink(val.args.get(0), true, in); if (nLink != null) return nLink; } else if (sig.equals(TransformationClassAnalyzer.streamOf)) { JPQLQuery<?> nLink = handlePossibleNavigationalLink(val.args.get(0), false, in); if (nLink != null) return nLink; } return super.staticMethodCallValue(val, in); }
if (nLink != null) return nLink; return super.virtualMethodCallValue(val, in);
@Override public ColumnExpressions<?> staticMethodCallValue(MethodCallValue.StaticMethodCallValue val, Void in) throws TypedValueVisitorException { MethodSignature sig = val.getSignature(); if (sig.equals(TransformationClassAnalyzer.integerValueOf) || sig.equals(TransformationClassAnalyzer.doubleValueOf)) { // Integer.valueOf() to be like a cast and assume it's correct ColumnExpressions<?> base = val.args.get(0).visit(this, in); return base; } // else if (TransformationClassAnalyzer.stringLike.equals(sig)) // { // SQLColumnValues sql = new SQLColumnValues(new SQLReader.BooleanSQLReader()); // sql.add("("); // sql.add(val.args.get(0).visit(this, in)); // sql.add(")"); // sql.add(" LIKE "); // sql.add("("); // sql.add(val.args.get(1).visit(this, in)); // sql.add(")"); // return sql; // } else return super.staticMethodCallValue(val, in); }
return super.virtualMethodCallValue(val, in);
return super.staticMethodCallValue(val, in);
@Override public ColumnExpressions<?> staticMethodCallValue(MethodCallValue.StaticMethodCallValue val, Void in) throws TypedValueVisitorException { MethodSignature sig = val.getSignature(); if (sig.equals(TransformationClassAnalyzer.integerValueOf) || sig.equals(TransformationClassAnalyzer.doubleValueOf)) { // Integer.valueOf() to be like a cast and assume it's correct ColumnExpressions<?> base = val.args.get(0).visit(this, in); return base; } // else if (TransformationClassAnalyzer.stringLike.equals(sig)) // { // SQLColumnValues sql = new SQLColumnValues(new SQLReader.BooleanSQLReader()); // sql.add("("); // sql.add(val.args.get(0).visit(this, in)); // sql.add(")"); // sql.add(" LIKE "); // sql.add("("); // sql.add(val.args.get(1).visit(this, in)); // sql.add(")"); // return sql; // } else return super.staticMethodCallValue(val, in); }