public virtual void TraverseAllAspects(ITraverseAspectCommand command) { ClassMetadata classMetadata = _classMetadata; int currentSlot = 0; while (classMetadata != null) { int aspectCount = command.DeclaredAspectCount(classMetadata); for (int i = 0; i < aspectCount && !command.Cancelled(); i++) { command.ProcessAspect(classMetadata._aspects[i], currentSlot); currentSlot++; } if (command.Cancelled()) { return; } classMetadata = classMetadata._ancestor; } }
private int ProcessAspectsOf(ClassMetadata classMetadata, ITraverseAspectCommand command, int currentSlot, ModifiedAspectTraversalStrategy.ITraverseAspectCommandProcessor processor) { int aspectCount = command.DeclaredAspectCount(classMetadata); for (int i = 0; i < aspectCount && !command.Cancelled(); i++) { processor.Process(command, classMetadata._aspects[i], currentSlot); currentSlot++; } return currentSlot; }
private int ProcessAspectsOf(ClassMetadata classMetadata, ITraverseAspectCommand command, int currentSlot, ModifiedAspectTraversalStrategy.ITraverseAspectCommandProcessor processor) { int aspectCount = command.DeclaredAspectCount(classMetadata); for (int i = 0; i < aspectCount && !command.Cancelled(); i++) { processor.Process(command, classMetadata._aspects[i], currentSlot); currentSlot++; } return(currentSlot); }
public virtual void TraverseAllAspects(ITraverseAspectCommand command) { int currentSlot = 0; for (IEnumerator diffIter = _classDiffs.GetEnumerator(); diffIter.MoveNext(); ) { HierarchyAnalyzer.Diff diff = ((HierarchyAnalyzer.Diff)diffIter.Current); ClassMetadata classMetadata = diff.ClassMetadata(); if (diff.IsRemoved()) { currentSlot = SkipAspectsOf(classMetadata, command, currentSlot); continue; } currentSlot = TraverseAspectsOf(classMetadata, command, currentSlot); if (command.Cancelled()) { return; } } }
public virtual void TraverseAllAspects(ITraverseAspectCommand command) { int currentSlot = 0; for (IEnumerator diffIter = _classDiffs.GetEnumerator(); diffIter.MoveNext();) { HierarchyAnalyzer.Diff diff = ((HierarchyAnalyzer.Diff)diffIter.Current); ClassMetadata classMetadata = diff.ClassMetadata(); if (diff.IsRemoved()) { currentSlot = SkipAspectsOf(classMetadata, command, currentSlot); continue; } currentSlot = TraverseAspectsOf(classMetadata, command, currentSlot); if (command.Cancelled()) { return; } } }