Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
public Number count${relationship.capitalizedName}() {
    return countForRelationship("${relationship.name}");
  }

  public NumberEOQualifier qualifierFor${relationship.capitalizedName}() {
    return qualifierForRelationshipWithKey("${relationship.name}");
  }

...

Code Block
public EOQualifier qualifierForRelationshipWithKey(String aKey)
	{
		this.willRead();

		if ((aKey != null))
		{
			String anEntityName = this.entityName();
			EOEntity anEntity = EOModelGroup.defaultGroup().entityNamed(anEntityName);
			EORelationship aRelationship = anEntity.relationshipNamed(aKey);

			if (aRelationship != null)
			{
				EOEditingContext anEditingContext = this.editingContext();
				EOGlobalID aGlobalID = anEditingContext.globalIDForObject(this);
				String aModelName = anEntity.model().name();
				EODatabaseContext aDatabaseContext = EOUtilities.databaseContextForModelNamed(anEditingContext,
				        aModelName);
				aDatabaseContext.lock();
				NSDictionary aRow = aDatabaseContext.snapshotForGlobalID(aGlobalID);
				aDatabaseContext.unlock();
				EOQualifier aQualifier = aRelationship.qualifierWithSourceRow(aRow);

				return aQualifier;
			}
		}

		return null;
	}

	/**
	 * Return count for the given relationship.
	 */
	public NumberInteger countForRelationship(String key)
	{
		EOQualifier qual = qualifierForRelationshipWithKey(key);
		if (qual != null)
		{
			String anEntityName = this.entityName();
			EOEntity anEntity = EOModelGroup.defaultGroup().entityNamed(anEntityName);
			EORelationship aRelationship = anEntity.relationshipNamed(key);
			return ERXEOControlUtilities.objectCountWithQualifier(this.editingContext(), aRelationship
			        .destinationEntity().name(), qual);
		}
		return null;

	}