@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 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); }
@Override public Boolean staticMethodCallValue(StaticMethodCallValue val, Boolean in) throws RuntimeException { if (val.getSignature().equals(TransformationClassAnalyzer.booleanValueOf)) return true; return super.staticMethodCallValue(val, in); } @Override
@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); }
@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.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); }