Package com.redspr.redquerybuilder.core.shared.meta

Examples of com.redspr.redquerybuilder.core.shared.meta.Operator


        c.setEditor(getEditor());
        return c;
    }

    private Operator getOperator() {
        Operator o = new Operator("TEST");
        o.setCardinality(getCardinality());
        return o;
    }
View Full Code Here


        Column lc = leftec.getColumn();
        if (lc == null) {
            leftec.getColumn();
        }
        Type lt = lc.getType();
        Operator o = lt.getOperatorByName(compareType);
        if (o == null) {
            o = lt.getOperators()[0];
            compareType = o.getName();
        }
        return o;
    }
View Full Code Here

        op.setAcceptableValues(col.getType().getOperators());
    }

    @Override
    public String getSQL(List<Object> args) {
        Operator op = getOperator();
        switch (op.getCardinality()) {
        case ZERO:
            return "(" + getLeft().getSQL(args) + " " + op.getName() + ")";
        case ONE:
        case MULTI:
            return "(" + getLeft().getSQL(args) + " " + getOperatorName() + " "
                    + getRight().getSQL(args) + ")";
        default:
            throw new RuntimeException("Unknown cardinality "
                    + op.getCardinality());
        }
    }
View Full Code Here

        Schema schema = new Schema();
        Database database = new Database(schema);

        Type stringType = new Type("VARCHAR");
        stringType.setOperators(new Operator[] {
                new Operator("="),
                new Operator("IS NULL", Cardinality.ZERO),
                new Operator("LIKE"), new Operator("CUSTOM_OP") });

        // XXX IN done better as hint or style?
        Type refType = new Type("REFS");
        refType.setEditor(new Editor.SelectEditor());
        refType.setOperators(new Operator[]{
                new Operator("IN", Cardinality.MULTI),
                new Operator("NOT IN", Cardinality.MULTI)});

        Type suggestType = new Type("SUGGEST");
        suggestType.setEditor(new SuggestEditor());
        suggestType.setOperators(new Operator[]{new Operator("=")});

        Type singleRefType = new Type("REF");
        singleRefType.setEditor(new Editor.SelectEditor());
        singleRefType.setOperators(new Operator[] {
                new Operator("="),
                new Operator("IS NULL", Cardinality.ZERO),
                new Operator("CUSTOM_OP", Cardinality.ONE)});

        Type dateType = new Type("DATE");
        dateType.setEditor(new Editor.DateEditor());
        Type[] types = new Type[]{stringType, dateType, refType, singleRefType};
        database.setTypes(types);
View Full Code Here

//                    parseIndex = backup;
//                    currentToken = "NOT";
//                    break;
//                }
            }
            Operator op = readCustom(not);
            if (op != null) {
                Expression b;
                switch (op.getCardinality()) {
                case ZERO: {
                    b = null;
                    break;
                }
                case ONE: {
                    b = readConcat();
                    break;
                }
                case MULTI: {
                    read("(");
                  Collection<Expression> v = new ArrayList<Expression>();
                  Expression last;
                  do {
                      last = readExpression();
                      v.add(last);
                  } while (readIf(","));
                  read(")");
                  b = new Parameter(session, v);
                  break;
                }
                default:
                    throw new IllegalArgumentException("Can't handle "
                            + op.getCardinality());
                }

                Expression esc = null;
                if (readIf("ESCAPE")) {
                    esc = readConcat();
                }
                recompileAlways = true;
                r = new Comparison(session, op.getName(), r, b);
            } //else if (readIf("REGEXP")) {
//                Expression b = readConcat();
//                r = new CompareLike(database.getCompareMode(), r, b, null, true);
           // } else
              if (readIf("IS")) {
View Full Code Here

        read();
    }

    private Operator readCustom(boolean not) throws SQLException {
        String token = not ? "NOT " + currentToken : currentToken;
        Operator op = session.getDatabase().getOperatorByName(token);
        if (op != null) {
            read();
            return op;
        }
        return null;
View Full Code Here

            Type type = new Type(jsType.getName());
            type.setEditor(Editor.valueOf(jsType.getEditor()));
            Operator[] ops = new Operator[jsType.getOperators().length()];
            for (int j = 0; j < ops.length; j++) {
                JsOperator jsOp = jsType.getOperators().get(j);
                Operator op = new Operator(jsOp.getName());
                op.setLabel(jsOp.getLabel());
                String cardName = jsOp.getCardinality();
                if (cardName != null) {
                    op.setCardinality(Cardinality.valueOf(cardName));
                }
                ops[j] = op;
            }
            type.setOperators(ops);
            types[i] = type;
View Full Code Here

TOP

Related Classes of com.redspr.redquerybuilder.core.shared.meta.Operator

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.