ERXQualifierInSubquery Class Reference

Inherits com::webobjects::eocontrol::EOQualifier, com::webobjects::eoaccess::EOQualifierSQLGeneration, and com::webobjects::eocontrol::EOQualifierEvaluation.

Collaboration diagram for ERXQualifierInSubquery:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void addQualifierKeysToSet (NSMutableSet aSet)
Object clone ()
 ERXQualifierInSubquery (EOQualifier qualifier, String entityName, String attributeName, String destinationAttName)
 ERXQualifierInSubquery (EOQualifier qualifier, String entityName, String relationshipName)
 ERXQualifierInSubquery (EOQualifier qualifier)
boolean evaluateWithObject (Object object)
EOQualifier qualifierMigratedFromEntityRelationshipPath (EOEntity anEntity, String aPath)
EOQualifier qualifierWithBindings (NSDictionary someBindings, boolean requiresAll)
EOQualifier schemaBasedQualifierWithRootEntity (EOEntity anEntity)
String sqlStringForSQLExpression (EOSQLExpression e)
String toString ()
void validateKeysWithRootClassDescription (EOClassDescription aClassDescription)

Static Public Attributes

static final Logger log = Logger.getLogger(ERXQualifierInSubquery.class)

Protected Attributes

String attributeName
String destinationAttName
String entityName
EOQualifier qualifier
String relationshipName


Detailed Description

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


Constructor & Destructor Documentation

ERXQualifierInSubquery ( EOQualifier  qualifier  ) 

Public single argument constructor. Use this constructor for sub-qualification on the same table.

Parameters:
qualifier sub qualifier

ERXQualifierInSubquery ( EOQualifier  qualifier,
String  entityName,
String  relationshipName 
)

Parameters:
qualifier sub qualifier
entityName of the sub qualification
relationshipName relationship name

ERXQualifierInSubquery ( EOQualifier  qualifier,
String  entityName,
String  attributeName,
String  destinationAttName 
)

Parameters:
qualifier sub qualifier
entityName of the sub qualification
attributeName foreign key attribute name
destinationAttName destination key name


Member Function Documentation

void addQualifierKeysToSet ( NSMutableSet  aSet  ) 

Only used with qualifier keys which are not supported in this qualifier at this time. Does nothing.

Parameters:
aSet of qualifier keys

Object clone (  ) 

Implementation of the Clonable interface. Clones the current qualifier.

Returns:
cloned qualifier.

boolean evaluateWithObject ( Object  object  ) 

EOQualifier qualifierMigratedFromEntityRelationshipPath ( EOEntity  anEntity,
String  aPath 
)

Implementation of the EOQualifierSQLGeneration interface. Just clones the qualifier.

Parameters:
anEntity an entity
aPath relationship path
Returns:
clone of the current qualifier.

EOQualifier qualifierWithBindings ( 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.

Parameters:
someBindings some bindings
requiresAll tells if the qualifier requires all bindings
Returns:
clone of the current qualifier.

EOQualifier schemaBasedQualifierWithRootEntity ( EOEntity  anEntity  ) 

Implementation of the EOQualifierSQLGeneration interface. Just clones the qualifier.

Parameters:
anEntity an entity.
Returns:
clone of the current qualifier.

String sqlStringForSQLExpression ( EOSQLExpression  e  ) 

Generates the sql string for the given sql expression. Bulk of the logic for generating the sub-query is in this method.

Parameters:
e a given sql expression
Returns:
sql string for the current sub-query.

String toString (  ) 

Description of the qualifier

Returns:
human readable description of the qualifier.

void validateKeysWithRootClassDescription ( EOClassDescription  aClassDescription  ) 

This qualifier does not perform validation. This is a no-op method.

Parameters:
aClassDescription to validation the qualifier keys against.


Member Data Documentation

String attributeName [protected]

holds the attribute name

holds the attribute name

String entityName [protected]

holds the entity name

final Logger log = Logger.getLogger(ERXQualifierInSubquery.class) [static]

logging support

EOQualifier qualifier [protected]

holds the subqualifier

String relationshipName [protected]

holds the relationship name


The documentation for this class was generated from the following file:

Generated on Sat May 26 06:43:12 2012 for Project Wonder by  doxygen 1.5.8