• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?


  • Subject: Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
  • From: Lachlan Deck <email@hidden>
  • Date: Tue, 19 Feb 2008 07:53:44 +1100

Hi there,

On 19/02/2008, at 7:35 AM, Pierre Bernard wrote:

I am not really sure what you want to do, but chances are you will find help here:

http://code.google.com/p/houdah-webobjects-frameworks/wiki/ QualifierAdditions

In the qualifier support classes (HoudahEOAccess framework) you will find implementations of qualifier migration.

With a little luck, one of the qualifiers (probably InSubQueryQualifier) can be used to do just what you want.

Thanks... for reminding me of your framework.
Yeah that'd probably work. i.e., an InSubQueryQualifier + EONotQualifier(pkRelationship.destinationEntity().restrictingQualifier ()).


I ended up just doing the below for now. But I'll think about whether the above would be more future proof.

Thanks.

On 18 Feb 2008, at 20:14, Lachlan Deck wrote:

I'm wondering if there's something akin to the above but that allows migrating *to* some other entity (rather than from).

e.g., I'm wanting to 'and' the restricting qualifiers for the pk relations of my join entities (dynamically) so that they are likewise restricted.

Anything in either EOF or Wonder?

with regards, --

Lachlan Deck


public static class QualifierMigrationSupport
{

private static String dottedKeyPath( String relationshipPath )
{
if ( relationshipPath == null || relationshipPath.length() == 0 || relationshipPath.lastIndexOf( '.' ) == relationshipPath.length() - 1 )
return relationshipPath;
return relationshipPath + '.';
}

private static String newKeyPath( String relPath, String origPath )
{
return dottedKeyPath( relPath ) + origPath;
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath( EOAndQualifier qualifier, EOEntity entity, String relationshipPath )
{
NSArray qualifiers = qualifier.qualifiers();
int qualifiersCount = qualifiers.count();
NSMutableArray newQualifiers = new NSMutableArray( qualifiersCount );
for ( int i = qualifiersCount - 1; i >= 0; i-- )
newQualifiers
.addObject( qualifierMigratedFromEntityToRelationshipPath ( ( EOQualifier )qualifiers.objectAtIndex( i ), entity, relationshipPath ) );

return new EOAndQualifier( newQualifiers );
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath ( EOKeyComparisonQualifier qualifier, EOEntity entity, String relationshipPath )
{
String newLeftKey = newKeyPath( relationshipPath, qualifier.leftKey () );
String newRightKey = newKeyPath( relationshipPath, qualifier.rightKey() );
return new EOKeyComparisonQualifier( newLeftKey, qualifier.selector (), newRightKey );
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath( EOKeyValueQualifier qualifier, EOEntity entity, String relationshipPath )
{
return new EOKeyValueQualifier( newKeyPath( relationshipPath, qualifier.key() ), qualifier.selector(), qualifier.value() );
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath( EONotQualifier qualifier, EOEntity entity, String relationshipPath )
{
return new EONotQualifier ( qualifierMigratedFromEntityToRelationshipPath( qualifier.qualifier (), entity, relationshipPath ) );
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath( EOOrQualifier qualifier, EOEntity entity, String relationshipPath )
{
NSArray qualifiers = qualifier.qualifiers();
int qualifiersCount = qualifiers.count();
NSMutableArray newQualifiers = new NSMutableArray( qualifiersCount );
for ( int i = qualifiersCount - 1; i >= 0; i-- )
newQualifiers
.addObject( qualifierMigratedFromEntityToRelationshipPath ( ( EOQualifier )qualifiers.objectAtIndex( i ), entity, relationshipPath ) );

return new EOOrQualifier( newQualifiers );
}

public static EOQualifier qualifierMigratedFromEntityToRelationshipPath( EOQualifier qualifier, EOEntity entity, String relationshipPath )
{
EOQualifier result = null;
if ( qualifier instanceof EOAndQualifier )
result = qualifierMigratedFromEntityToRelationshipPath ( ( EOAndQualifier )qualifier, entity, relationshipPath );
else if ( qualifier instanceof EOOrQualifier )
result = qualifierMigratedFromEntityToRelationshipPath ( ( EOOrQualifier )qualifier, entity, relationshipPath );
else if ( qualifier instanceof EOKeyValueQualifier )
result = qualifierMigratedFromEntityToRelationshipPath ( ( EOKeyValueQualifier )qualifier, entity, relationshipPath );
else if ( qualifier instanceof EONotQualifier )
result = qualifierMigratedFromEntityToRelationshipPath ( ( EONotQualifier )qualifier, entity, relationshipPath );
else if ( qualifier instanceof EOKeyComparisonQualifier )
result = qualifierMigratedFromEntityToRelationshipPath ( ( EOKeyComparisonQualifier )qualifier, entity, relationshipPath );
return result;
}
}
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden
  • Follow-Ups:
    • Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
      • From: Lachlan Deck <email@hidden>
References: 
 >Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)? (From: Lachlan Deck <email@hidden>)
 >Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)? (From: Pierre Bernard <email@hidden>)

  • Prev by Date: Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
  • Next by Date: Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
  • Previous by thread: Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
  • Next by thread: Re: Opposite of EOQualifierSQLGeneration.Support.qualifierMigratedFromEntityRelationshipPath(EOQualifier, EOEntity, String)?
  • Index(es):
    • Date
    • Thread