@Override public String toString() { StringBuilder st = new StringBuilder(); st.append('('); // st.append(Type.POSITIVE.equals(type) ? "(" : "not("); String op = (Type.POSITIVE.equals(type) ? "" : "n") + (Operator.AND.equals(operator) ? "and " : "or "); for (int i = 0; i < children.length; i++) { ILogical child = children[i]; if (child.isLit()) { st.append(((BoolVar) child).getName()); } else { st.append(child.toString()); } st.append(" ").append(op); } st.replace(st.length() - (op.length() + 1), st.length(), ""); st.append(')'); return st.toString(); }
public static void initBuiltins(Db db) { db.addBuiltin( ScalarFunction.createBuiltinOperator( Operator.AND.name(), "CompoundPredicate", "AndComputeFn", Lists.newArrayList(ColumnType.BOOLEAN, ColumnType.BOOLEAN), ColumnType.BOOLEAN)); db.addBuiltin( ScalarFunction.createBuiltinOperator( Operator.OR.name(), "CompoundPredicate", "OrComputeFn", Lists.newArrayList(ColumnType.BOOLEAN, ColumnType.BOOLEAN), ColumnType.BOOLEAN)); db.addBuiltin( ScalarFunction.createBuiltinOperator( Operator.NOT.name(), "CompoundPredicate", "NotComputeFn", Lists.newArrayList(ColumnType.BOOLEAN), ColumnType.BOOLEAN)); }