Project Wonder 5.0

er.extensions.eof.qualifiers
Class ERXQualifierInSubquery

java.lang.Object
  extended by com.webobjects.eocontrol.EOQualifier
      extended by er.extensions.eof.qualifiers.ERXQualifierInSubquery
All Implemented Interfaces:
com.webobjects.eoaccess.EOQualifierSQLGeneration, com.webobjects.eocontrol.EOQualifierEvaluation, java.io.Serializable, java.lang.Cloneable

public class ERXQualifierInSubquery
extends com.webobjects.eocontrol.EOQualifier
implements com.webobjects.eoaccess.EOQualifierSQLGeneration, java.lang.Cloneable, com.webobjects.eocontrol.EOQualifierEvaluation

Generates a subquery for the qualifier given in argument:


 EOQualifier q = EOQualifier.qualifierWithQualifierFormat("firstName = 'Max'", null);
 ERXQualifierInSubquery qq = new ERXQualifierInSubquery(q, "User", "group");
 EOFetchSpecification fs = new EOFetchSpecification("Group", qq, null);
 
Would generate: "SELECT t0.GROUP_ID, t0.NAME FROM USER t0 WHERE t0.GROUP_ID IN ( SELECT t0.GROUP_ID FROM GROUP t0 WHERE t0.NAME = ? ) " This class can be used to work around the EOF bug where OR queries involving many-to-manies are incorrectly generated It will also generate ... t0.FOREIGN_KEY_ID in (select t1.ID from X where [your qualifier here]) with the 3 arg constructor

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class com.webobjects.eocontrol.EOQualifier
com.webobjects.eocontrol.EOQualifier.Comparison, com.webobjects.eocontrol.EOQualifier.ComparisonSupport, com.webobjects.eocontrol.EOQualifier.QualifierVariableSubstitutionException
 
Nested classes/interfaces inherited from interface com.webobjects.eoaccess.EOQualifierSQLGeneration
com.webobjects.eoaccess.EOQualifierSQLGeneration._AndQualifierSupport, com.webobjects.eoaccess.EOQualifierSQLGeneration._KeyComparisonQualifierSupport, com.webobjects.eoaccess.EOQualifierSQLGeneration._KeyValueQualifierSupport, com.webobjects.eoaccess.EOQualifierSQLGeneration._NotQualifierSupport, com.webobjects.eoaccess.EOQualifierSQLGeneration._OrQualifierSupport, com.webobjects.eoaccess.EOQualifierSQLGeneration.Support
 
Field Summary
protected  java.lang.String attributeName
          holds the attribute name
protected  java.lang.String destinationAttName
          holds the attribute name
protected  java.lang.String entityName
          holds the entity name
static org.apache.log4j.Logger log
          logging support
protected  com.webobjects.eocontrol.EOQualifier qualifier
          holds the subqualifier
protected  java.lang.String relationshipName
          holds the relationship name
 
Fields inherited from class com.webobjects.eocontrol.EOQualifier
_CLASS, QualifierOperatorCaseInsensitiveLike, QualifierOperatorContains, QualifierOperatorEqual, QualifierOperatorGreaterThan, QualifierOperatorGreaterThanOrEqualTo, QualifierOperatorLessThan, QualifierOperatorLessThanOrEqualTo, QualifierOperatorLike, QualifierOperatorNotEqual
 
Fields inherited from interface com.webobjects.eocontrol.EOQualifierEvaluation
_CLASS
 
Constructor Summary
ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier)
          Public single argument constructor.
ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier, java.lang.String entityName, java.lang.String relationshipName)
           
ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier, java.lang.String entityName, java.lang.String attributeName, java.lang.String destinationAttName)
           
 
Method Summary
 void addQualifierKeysToSet(com.webobjects.foundation.NSMutableSet aSet)
          Only used with qualifier keys which are not supported in this qualifier at this time.
 java.lang.Object clone()
          Implementation of the Clonable interface.
 boolean evaluateWithObject(java.lang.Object object)
           
 com.webobjects.eocontrol.EOQualifier qualifierMigratedFromEntityRelationshipPath(com.webobjects.eoaccess.EOEntity anEntity, java.lang.String aPath)
          Implementation of the EOQualifierSQLGeneration interface.
 com.webobjects.eocontrol.EOQualifier qualifierWithBindings(com.webobjects.foundation.NSDictionary someBindings, boolean requiresAll)
          Creates another qualifier after replacing the values of the bindings.
 com.webobjects.eocontrol.EOQualifier schemaBasedQualifierWithRootEntity(com.webobjects.eoaccess.EOEntity anEntity)
          Implementation of the EOQualifierSQLGeneration interface.
 java.lang.String sqlStringForSQLExpression(com.webobjects.eoaccess.EOSQLExpression e)
          Generates the sql string for the given sql expression.
 java.lang.String toString()
          Description of the qualifier
 void validateKeysWithRootClassDescription(com.webobjects.eocontrol.EOClassDescription aClassDescription)
          This qualifier does not perform validation.
 
Methods inherited from class com.webobjects.eocontrol.EOQualifier
_accept, _isEmpty, allQualifierKeys, allQualifierOperators, bindingKeys, filterArrayWithQualifier, filteredArrayWithQualifier, keyPathForBindingKey, operatorSelectorForSelectorNamed, operatorSelectorForString, qualifierToMatchAllValues, qualifierToMatchAnyValue, qualifierWithQualifierFormat, relationalQualifierOperators, stringForOperatorSelector
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

log

public static final org.apache.log4j.Logger log
logging support


qualifier

protected com.webobjects.eocontrol.EOQualifier qualifier
holds the subqualifier


entityName

protected java.lang.String entityName
holds the entity name


relationshipName

protected java.lang.String relationshipName
holds the relationship name


attributeName

protected java.lang.String attributeName
holds the attribute name


destinationAttName

protected java.lang.String destinationAttName
holds the attribute name

Constructor Detail

ERXQualifierInSubquery

public ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier)
Public single argument constructor. Use this constructor for sub-qualification on the same table.

Parameters:
qualifier - sub qualifier

ERXQualifierInSubquery

public ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier,
                              java.lang.String entityName,
                              java.lang.String relationshipName)
Parameters:
qualifier - sub qualifier
entityName - of the sub qualification
relationshipName - relationship name

ERXQualifierInSubquery

public ERXQualifierInSubquery(com.webobjects.eocontrol.EOQualifier qualifier,
                              java.lang.String entityName,
                              java.lang.String attributeName,
                              java.lang.String destinationAttName)
Parameters:
qualifier - sub qualifier
entityName - of the sub qualification
attributeName - foreign key attribute name
destinationAttName - destination key name
Method Detail

addQualifierKeysToSet

public void addQualifierKeysToSet(com.webobjects.foundation.NSMutableSet aSet)
Only used with qualifier keys which are not supported in this qualifier at this time. Does nothing.

Specified by:
addQualifierKeysToSet in class com.webobjects.eocontrol.EOQualifier
Parameters:
aSet - of qualifier keys

qualifierWithBindings

public com.webobjects.eocontrol.EOQualifier qualifierWithBindings(com.webobjects.foundation.NSDictionary someBindings,
                                                                  boolean requiresAll)
Creates another qualifier after replacing the values of the bindings. Since this qualifier does not support qualifier binding keys a clone of the qualifier is returned.

Specified by:
qualifierWithBindings in class com.webobjects.eocontrol.EOQualifier
Parameters:
someBindings - some bindings
requiresAll - tells if the qualifier requires all bindings
Returns:
clone of the current qualifier.

validateKeysWithRootClassDescription

public void validateKeysWithRootClassDescription(com.webobjects.eocontrol.EOClassDescription aClassDescription)
This qualifier does not perform validation. This is a no-op method.

Specified by:
validateKeysWithRootClassDescription in class com.webobjects.eocontrol.EOQualifier
Parameters:
aClassDescription - to validation the qualifier keys against.

sqlStringForSQLExpression

public java.lang.String sqlStringForSQLExpression(com.webobjects.eoaccess.EOSQLExpression e)
Generates the sql string for the given sql expression. Bulk of the logic for generating the sub-query is in this method.

Specified by:
sqlStringForSQLExpression in interface com.webobjects.eoaccess.EOQualifierSQLGeneration
Parameters:
e - a given sql expression
Returns:
sql string for the current sub-query.

schemaBasedQualifierWithRootEntity

public com.webobjects.eocontrol.EOQualifier schemaBasedQualifierWithRootEntity(com.webobjects.eoaccess.EOEntity anEntity)
Implementation of the EOQualifierSQLGeneration interface. Just clones the qualifier.

Specified by:
schemaBasedQualifierWithRootEntity in interface com.webobjects.eoaccess.EOQualifierSQLGeneration
Parameters:
anEntity - an entity.
Returns:
clone of the current qualifier.

qualifierMigratedFromEntityRelationshipPath

public com.webobjects.eocontrol.EOQualifier qualifierMigratedFromEntityRelationshipPath(com.webobjects.eoaccess.EOEntity anEntity,
                                                                                        java.lang.String aPath)
Implementation of the EOQualifierSQLGeneration interface. Just clones the qualifier.

Specified by:
qualifierMigratedFromEntityRelationshipPath in interface com.webobjects.eoaccess.EOQualifierSQLGeneration
Parameters:
anEntity - an entity
aPath - relationship path
Returns:
clone of the current qualifier.

toString

public java.lang.String toString()
Description of the qualifier

Overrides:
toString in class java.lang.Object
Returns:
human readable description of the qualifier.

clone

public java.lang.Object clone()
Implementation of the Clonable interface. Clones the current qualifier.

Overrides:
clone in class com.webobjects.eocontrol.EOQualifier
Returns:
cloned qualifier.

evaluateWithObject

public boolean evaluateWithObject(java.lang.Object object)
Specified by:
evaluateWithObject in interface com.webobjects.eocontrol.EOQualifierEvaluation
Overrides:
evaluateWithObject in class com.webobjects.eocontrol.EOQualifier

Last updated: Tue, Feb 21, 2017 • 05:45 PM CET

Copyright © 2002 – 2007 Project Wonder.