/*
* Initial version copyright 2008 Lockheed Martin Corporation, except
* as stated in the file entitled Licensing-Information.
*
* All modifications copyright 2009-2017 Data Access Technologies, Inc.
*
* Licensed under the Academic Free License version 3.0
* (http://www.opensource.org/licenses/afl-3.0.php), except as stated
* in the file entitled Licensing-Information.
*/
package fUML.Semantics.Loci.LociL3;
import fUML.Syntax.Activities.CompleteActivities.DataStoreNode;
import fUML.Syntax.Activities.CompleteStructuredActivities.*;
import fUML.Syntax.Activities.ExtraStructuredActivities.*;
import fUML.Syntax.Actions.CompleteActions.*;
import fUML.Semantics.Activities.CompleteActivities.DataStoreNodeActivation;
import fUML.Semantics.Activities.CompleteStructuredActivities.*;
import fUML.Semantics.Activities.ExtraStructuredActivities.*;
import fUML.Semantics.Actions.CompleteActions.*;
import fUML.Semantics.Loci.LociL1.*;
public class ExecutionFactoryL3 extends
fUML.Semantics.Loci.LociL2.ExecutionFactoryL2 {
public fUML.Semantics.Loci.LociL1.SemanticVisitor instantiateVisitor(
fUML.Syntax.Classes.Kernel.Element element) {
// Instantiate a visitor object for the given element (at Conformance
// Level 3)
SemanticVisitor visitor = null;
if (element instanceof DataStoreNode) {
visitor = new DataStoreNodeActivation();
}
else if (element instanceof ConditionalNode) {
visitor = new ConditionalNodeActivation();
}
else if (element instanceof LoopNode) {
visitor = new LoopNodeActivation();
}
else if (element instanceof ExpansionRegion) {
visitor = new ExpansionRegionActivation();
}
// Note: Since ConditionalNode, LoopNode and ExpansionRegion are
// subclasses of StructuredActivityNode, element must be tested
// against the three subclasses before the superclass.
else if (element instanceof StructuredActivityNode) {
visitor = new StructuredActivityNodeActivation();
}
else if (element instanceof ExpansionNode) {
visitor = new ExpansionNodeActivation();
}
else if (element instanceof ReadExtentAction) {
visitor = new ReadExtentActionActivation();
}
else if (element instanceof ReadIsClassifiedObjectAction) {
visitor = new ReadIsClassifiedObjectActionActivation();
}
else if (element instanceof ReclassifyObjectAction) {
visitor = new ReclassifyObjectActionActivation();
}
else if (element instanceof StartObjectBehaviorAction) {
visitor = new StartObjectBehaviorActionActivation();
}
else if (element instanceof StartClassifierBehaviorAction) {
visitor = new StartClassifierBehaviorActionActivation();
}
// Note: Since AcceptCallAction is a subclass of AcceptEventAction,
// element must be tested against AcceptCallAction before
// AcceptEventAction.
else if (element instanceof AcceptCallAction) {
visitor = new AcceptCallActionActivation();
}
else if (element instanceof AcceptEventAction) {
visitor = new AcceptEventActionActivation();
}
else if (element instanceof ReplyAction) {
visitor = new ReplyActionActivation();
}
else if (element instanceof ReduceAction) {
visitor = new ReduceActionActivation();
}
else {
visitor = super.instantiateVisitor(element);
}
return visitor;
} // instantiateVisitor
} // ExecutionFactoryL3