ERDSmartAttributeAssignment Class Reference

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

Collaboration diagram for ERDSmartAttributeAssignment:

Collaboration graph
[legend]

List of all members.

Public Member Functions

NSArray dependentKeys (String keyPath)
 ERDSmartAttributeAssignment (String key, Object value)
 ERDSmartAttributeAssignment (EOKeyValueUnarchiver u)
Object smartAttribute (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 an attribute 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.attribute will not fire properly. This is because attribute is null, instead of containing <EOAttribute entity="B1" name="k">. The reason D2W does not find it is that it uses the Model to find out the EOAttribute and starts from A. Following the relationship b, gives a B, and asking B for an attribute named k returns nil and you lose.
Deprecated:
use ERDDefaultModelAssignment

Constructor & Destructor Documentation

ERDSmartAttributeAssignment ( EOKeyValueUnarchiver  u  ) 

Public constructor

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

ERDSmartAttributeAssignment ( 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: "object.entityName" and "propertyKey". 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 smartAttribute ( D2WContext  c  ) 

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

Parameters:
c current D2W context
Returns:
attribute 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 keys this assignment depends on


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

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