Project Wonder 2.0

er.directtoweb
Class ERDSmartRelationshipAssignment

java.lang.Object
  extended bycom.webobjects.directtoweb.Assignment
      extended byer.directtoweb.ERDAssignment
          extended byer.directtoweb.ERDSmartRelationshipAssignment
All Implemented Interfaces:
EOKeyValueArchiving, ERDComputingAssignmentInterface, Serializable

Deprecated. use ERDDefaultModelAssignment

public class ERDSmartRelationshipAssignment
extends ERDAssignment

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 . 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.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.webobjects.eocontrol.EOKeyValueArchiving
EOKeyValueArchiving._NullValueSupport, EOKeyValueArchiving._NumberSupport, EOKeyValueArchiving._TimestampSupport, EOKeyValueArchiving.Awaking, EOKeyValueArchiving.FinishInitialization, EOKeyValueArchiving.Support
 
Field Summary
static NSArray _DEPENDENT_KEYS
          Deprecated. holds the array of dependent keys
 
Fields inherited from class er.directtoweb.ERDAssignment
D2WContextClassArray, log
 
Fields inherited from class com.webobjects.directtoweb.Assignment
KeyPathKey, ValueKey
 
Fields inherited from interface com.webobjects.eocontrol.EOKeyValueArchiving
_CLASS
 
Constructor Summary
ERDSmartRelationshipAssignment(EOKeyValueUnarchiver u)
          Deprecated. Public constructor
ERDSmartRelationshipAssignment(String key, Object value)
          Deprecated. Public constructor
 
Method Summary
static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver eokeyvalueunarchiver)
          Deprecated. Static constructor required by the EOKeyValueUnarchiver interface.
 NSArray dependentKeys(String keyPath)
          Deprecated. Implementation of the ERDComputingAssignmentInterface.
 Object smartRelationship(D2WContext c)
          Deprecated. Resolves the EORelationship in a smarter manner using the current object from the context as well as the propertyKey to determine the current relationship.
 
Methods inherited from class er.directtoweb.ERDAssignment
booleanContextValueForKey, fire, keyForMethodLookup, localizedTemplateStringForKeyInContext, localizedValueForKeyInContext, localizedValueForKeyWithDefaultInContext, localizerForContext, logDeprecatedMessage
 
Methods inherited from class com.webobjects.directtoweb.Assignment
encodeWithKeyValueArchiver, keyPath, toString, value, value
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_DEPENDENT_KEYS

public static final NSArray _DEPENDENT_KEYS
Deprecated. 
holds the array of dependent keys

Constructor Detail

ERDSmartRelationshipAssignment

public ERDSmartRelationshipAssignment(EOKeyValueUnarchiver u)
Deprecated. 
Public constructor

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

ERDSmartRelationshipAssignment

public ERDSmartRelationshipAssignment(String key,
                                      Object value)
Deprecated. 
Public constructor

Parameters:
key - context key
value - of the assignment
Method Detail

decodeWithKeyValueUnarchiver

public static Object decodeWithKeyValueUnarchiver(EOKeyValueUnarchiver eokeyvalueunarchiver)
Deprecated. 
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

dependentKeys

public NSArray dependentKeys(String keyPath)
Deprecated. 
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.

smartRelationship

public Object smartRelationship(D2WContext c)
Deprecated. 
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.

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.