/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.query.algebra; public abstract class CompareSubQueryValueOperator extends SubQueryValueOperator { /*-----------* * Variables * *-----------*/ protected ValueExpr arg; /*--------------* * Constructors * *--------------*/ public CompareSubQueryValueOperator() { } public CompareSubQueryValueOperator(ValueExpr valueExpr, TupleExpr subQuery) { super(subQuery); setArg(valueExpr); } /*---------* * Methods * *---------*/ public ValueExpr getArg() { return arg; } public void setArg(ValueExpr arg) { assert arg != null : "arg must not be null"; arg.setParentNode(this); this.arg = arg; } @Override public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X { arg.visit(visitor); super.visitChildren(visitor); } @Override public void replaceChildNode(QueryModelNode current, QueryModelNode replacement) { if (arg == current) { setArg((ValueExpr)replacement); } else { super.replaceChildNode(current, replacement); } } @Override public CompareSubQueryValueOperator clone() { CompareSubQueryValueOperator clone = (CompareSubQueryValueOperator)super.clone(); clone.setArg(getArg().clone()); return clone; } }