com.metamatrix.query.sql.lang
Class ExistsCriteria

java.lang.Object
  extended by com.metamatrix.query.sql.lang.Criteria
      extended by com.metamatrix.query.sql.lang.PredicateCriteria
          extended by com.metamatrix.query.sql.lang.ExistsCriteria
All Implemented Interfaces:
SubqueryContainer, LanguageObject, ValueIteratorProvider, java.io.Serializable, java.lang.Cloneable

public class ExistsCriteria
extends PredicateCriteria
implements SubqueryContainer, ValueIteratorProvider

This predicate criteria implements the "exists" predicate, which has a subquery in it. For example, "EXISTS (Select EmployeeID FROM Employees WHERE EmployeeName = 'Smith')".

See Also:
Serialized Form

Constructor Summary
ExistsCriteria()
          Default constructor
ExistsCriteria(Command subqueryCommand)
           
 
Method Summary
 void acceptVisitor(LanguageVisitor visitor)
          Method for accepting a visitor.
 java.lang.Object clone()
          Deep copy of object.
 boolean equals(java.lang.Object obj)
          Override equals() method.
 Command getCommand()
          Returns the subquery Command object
 ValueIterator getValueIterator()
          Returns always the same instance of a ValueIterator, but resets it each time this method is called
 int hashCode()
          Get hash code.
 void setCommand(Command subqueryCommand)
          Sets the subquery Command object
 void setValueIterator(ValueIterator valueIterator)
          Set the ValueIterator on this object (the ValueIterator will encapsulate the single-column results of the subquery processor plan).
 
Methods inherited from class com.metamatrix.query.sql.lang.Criteria
combineCriteria, combineCriteria, combineCriteria, separateCriteriaByAnd, toConjunctiveNormalForm, toDisjunctiveNormalForm, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExistsCriteria

public ExistsCriteria()
Default constructor


ExistsCriteria

public ExistsCriteria(Command subqueryCommand)
Method Detail

getCommand

public Command getCommand()
Description copied from interface: SubqueryContainer
Returns the subquery Command object

Specified by:
getCommand in interface SubqueryContainer
Returns:
the subquery Command object
See Also:
com.metamatrix.query.sql.lang.SubqueryCriteria#getCommand()

setCommand

public void setCommand(Command subqueryCommand)
Description copied from interface: SubqueryContainer
Sets the subquery Command object

Specified by:
setCommand in interface SubqueryContainer
Parameters:
subqueryCommand - the subquery Command object

getValueIterator

public ValueIterator getValueIterator()
Returns always the same instance of a ValueIterator, but resets it each time this method is called

Specified by:
getValueIterator in interface ValueIteratorProvider
Returns:
this object's ValueIterator instance (always the same instance)
Throws:
MetaMatrixRuntimeException - if the subquery for this set criteria has not yet been processed and no value iterator is available
See Also:
AbstractSetCriteria.getValueIterator()

setValueIterator

public void setValueIterator(ValueIterator valueIterator)
Set the ValueIterator on this object (the ValueIterator will encapsulate the single-column results of the subquery processor plan). This ValueIterator must be set before processing (before the Criteria can be evaluated). Also, this ValueIterator should be considered transient - only available during processing - and it will not be cloned should this Criteria object be cloned.

Specified by:
setValueIterator in interface ValueIteratorProvider
Parameters:
valueIterator - encapsulating the results of the sub query

acceptVisitor

public void acceptVisitor(LanguageVisitor visitor)
Description copied from interface: LanguageObject
Method for accepting a visitor. It is the responsibility of the language object to call back on the visitor.

Specified by:
acceptVisitor in interface LanguageObject
Parameters:
visitor - Visitor being used

hashCode

public int hashCode()
Get hash code. WARNING: The hash code is based on data in the criteria. If data values are changed, the hash code will change - don't hash this object and change values.

Overrides:
hashCode in class java.lang.Object
Returns:
Hash code

equals

public boolean equals(java.lang.Object obj)
Override equals() method.

Overrides:
equals in class java.lang.Object
Parameters:
obj - Other object
Returns:
True if equal

clone

public java.lang.Object clone()
Deep copy of object. The values Iterator of this object will not be cloned - it will be null in the new object (see #setValueIterator setValueIterator}).

Specified by:
clone in interface LanguageObject
Specified by:
clone in class PredicateCriteria
Returns:
Deep copy of object
See Also:
Object.clone()


Copyright © 2009. All Rights Reserved.