Author: husted
Date: Wed Sep 27 08:55:14 2006
New Revision: 450487
URL: http://svn.apache.org/viewvc?view=rev&rev=450487
Log:
OVR-13 Amend notion of RelatedIDs to always include the instant command. The
protocol is to store the outcome under the Command ID, so any command that
returns an outcome is related to itself (has an output field by that name).
Modified:
struts/sandbox/trunk/overdrive/Nexus/Core/RequestChain.cs
struts/sandbox/trunk/overdrive/Nexus/Core/Validators/ProcessorCommand.cs
Modified: struts/sandbox/trunk/overdrive/Nexus/Core/RequestChain.cs
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Core/RequestChain.cs?view=diff&rev=450487&r1=450486&r2=450487
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/RequestChain.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/RequestChain.cs Wed Sep 27
08:55:14 2006
@@ -21,10 +21,10 @@
// Composite Required and Related
IList _RequiredIDs = command.RequiredIDs;
- if (null != _RequiredIDs) this.AddRequiredIDs =
_RequiredIDs;
+ if (null != _RequiredIDs) AddRequiredIDs = _RequiredIDs;
IList _RelatedIDs = command.RelatedIDs;
- if (null != _RelatedIDs) this.AddRelatedIDs =
_RelatedIDs;
+ if (null != _RelatedIDs) AddRelatedIDs = _RelatedIDs;
}
public IList AddCommands
Modified:
struts/sandbox/trunk/overdrive/Nexus/Core/Validators/ProcessorCommand.cs
URL:
http://svn.apache.org/viewvc/struts/sandbox/trunk/overdrive/Nexus/Core/Validators/ProcessorCommand.cs?view=diff&rev=450487&r1=450486&r2=450487
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Validators/ProcessorCommand.cs
(original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Validators/ProcessorCommand.cs
Wed Sep 27 08:55:14 2006
@@ -190,7 +190,11 @@
private ICollection CombinedIDs(IRequestContext context)
{
IDictionary combined = new Hashtable();
- IList relatedIDs = context.CommandBin.RelatedIDs; //
outer list
+ IList relatedIDs = context.CommandBin.RelatedIDs; //
outer list
+ // Add Command ID to related list (since we
store outcome under our own ID)
+ string id = context.CommandBin.ID;
+ bool found_self = relatedIDs.Contains(id);
+ if (!found_self) relatedIDs.Add(id);
if (relatedIDs != null) foreach (string i in
relatedIDs) combined[i] = i;
IList requiredIDs = context.CommandBin.RequiredIDs; //
inner list
if (requiredIDs != null) foreach (string i in
requiredIDs) combined[i] = i;