ERDSmartRelationshipAssignment Class Reference

Inherits er::directtoweb::assignments::ERDAssignment.

Collaboration diagram for ERDSmartRelationshipAssignment:

Collaboration graph
[legend]

List of all members.

Public Member Functions

NSArray dependentKeys (String keyPath)
 ERDSmartRelationshipAssignment (String key, Object value)
 ERDSmartRelationshipAssignment (EOKeyValueUnarchiver u)
Object smartRelationship (D2WContext c)

Static Public Member Functions

static Object decodeWithKeyValueUnarchiver (EOKeyValueUnarchiver eokeyvalueunarchiver)

Static Public Attributes

static final NSArray _DEPENDENT_KEYS = new NSArray(new String[] { "object.entityName", "propertyKey" })


Detailed Description

This class works around the following problem:
An entity A has a relationship b to an entity B, which has a subentity B1. B1 has a relationship k, which B does not have. If in an inspect page for entity A, you use b.k as a display key, then the D2W rules which are based on d2wContext.relationship will not fire properly. This is because relationship is null, instead of containing <EORelationship entity="B1" name="k">. The reason D2W does not find it is that it uses the Model to find out the EORelationship and starts from A. Following the relationship b, gives a B, and asking B for a relationship named k returns null and you lose.
Deprecated:
use ERDDefaultModelAssignment

Constructor & Destructor Documentation

ERDSmartRelationshipAssignment ( EOKeyValueUnarchiver  u  ) 

Public constructor

Parameters:
u key-value unarchiver used when unarchiving from rule files.

ERDSmartRelationshipAssignment ( String  key,
Object  value 
)

Public constructor

Parameters:
key context key
value of the assignment


Member Function Documentation

static Object decodeWithKeyValueUnarchiver ( EOKeyValueUnarchiver  eokeyvalueunarchiver  )  [static]

Static constructor required by the EOKeyValueUnarchiver interface. If this isn't implemented then the default behavior is to construct the first super class that does implement this method. Very lame.

Parameters:
eokeyvalueunarchiver to be unarchived
Returns:
decoded assignment of this class

NSArray dependentKeys ( String  keyPath  ) 

Implementation of the ERDComputingAssignmentInterface. This assignment depends upon the context keys: "propertyKey" and "object.entityName". This array of keys is used when constructing the significant keys for the passed in keyPath.

Parameters:
keyPath to compute significant keys for.
Returns:
array of context keys this assignment depends upon.

Implements ERDComputingAssignmentInterface.

Object smartRelationship ( D2WContext  c  ) 

Resolves the EORelationship in a smarter manner using the current object from the context as well as the propertyKey to determine the current relationship. Works even with inheirtance.

Parameters:
c current D2W context
Returns:
relationship for the current propertyKey object combination.


Member Data Documentation

final NSArray _DEPENDENT_KEYS = new NSArray(new String[] { "object.entityName", "propertyKey" }) [static]

holds the array of dependent keys


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

Generated on Sat May 26 06:42:50 2012 for Project Wonder by  doxygen 1.5.8