/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.query.algebra; /** * Compares the string representation of a value expression to a pattern. */ public class Regex extends BinaryValueOperator { /*-----------* * Variables * *-----------*/ private ValueExpr flagsArg; /*--------------* * Constructors * *--------------*/ public Regex() { } public Regex(ValueExpr expr, ValueExpr pattern, ValueExpr flags) { super(expr, pattern); setFlagsArg(flags); } /*---------* * Methods * *---------*/ public ValueExpr getArg() { return super.getLeftArg(); } public void setArg(ValueExpr leftArg) { super.setLeftArg(leftArg); } public ValueExpr getPatternArg() { return super.getRightArg(); } public void setPatternArg(ValueExpr rightArg) { super.setRightArg(rightArg); } public void setFlagsArg(ValueExpr flags) { this.flagsArg = flags; } public ValueExpr getFlagsArg() { return flagsArg; } public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X { visitor.meet(this); } @Override public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X { super.visitChildren(visitor); if (flagsArg != null) { flagsArg.visit(visitor); } } @Override public Regex clone() { Regex clone = (Regex)super.clone(); if (flagsArg != null) { clone.setFlagsArg(flagsArg.clone()); } return clone; } }