/*
* Initial version copyright 2008 Lockheed Martin Corporation, except
* as stated in the file entitled Licensing-Information.
*
* All modifications copyright 2009-2012 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.Actions.CompleteActions;
import fUML.Debug;
import UMLPrimitiveTypes.*;
import fUML.Syntax.*;
import fUML.Syntax.Classes.Kernel.*;
import fUML.Syntax.CommonBehaviors.BasicBehaviors.*;
import fUML.Syntax.CommonBehaviors.Communications.*;
import fUML.Syntax.Activities.IntermediateActivities.*;
import fUML.Syntax.Actions.BasicActions.*;
import fUML.Syntax.Actions.IntermediateActions.*;
import fUML.Syntax.Actions.CompleteActions.*;
import fUML.Semantics.*;
import fUML.Semantics.Classes.Kernel.*;
import fUML.Semantics.CommonBehaviors.BasicBehaviors.*;
import fUML.Semantics.Activities.IntermediateActivities.*;
import fUML.Semantics.Actions.BasicActions.*;
import fUML.Semantics.Actions.IntermediateActions.*;
import fUML.Semantics.Loci.*;
public class ReadExtentActionActivation extends
fUML.Semantics.Actions.BasicActions.ActionActivation {
public void doAction() {
// Get the extent, at the current execution locus, of the classifier
// (which must be a class) identified in the action.
// Place references to the resulting set of objects on the result pin.
ReadExtentAction action = (ReadExtentAction) (this.node);
ExtensionalValueList objects = this.getExecutionLocus().getExtent(
action.classifier);
// Debug.println("[doAction] " + action.classifier.name + " has " +
// objects.size() + " instance(s).");
ValueList references = new ValueList();
for (int i = 0; i < objects.size(); i++) {
Value object = objects.getValue(i);
Reference reference = new Reference();
reference.referent = (Object_) object;
references.addValue(reference);
}
this.putTokens(action.result, references);
} // doAction
} // ReadExtentActionActivation