View Javadoc

1   /*
2    * $Id: TransitionRemoveReadEdge.java 916 2008-07-08 15:47:06Z kwfgrid.bassheide $
3    *
4    * Copyright (c) 2008, Fraunhofer FIRST
5    * Fraunhofer Institute for Computer Architecture and Software Technology
6    * See http://www.first.fraunhofer.de and http://www.gridworkflow.org/gwes for more details.
7    */
8   package net.kwfgrid.gworkflowdl.protocol.calls;
9   
10  import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolEdge;
11  import net.kwfgrid.gworkflowdl.protocol.structure.ProtocolTransition;
12  import org.xmlpull.v1.XmlSerializer;
13  
14  import java.io.IOException;
15  
16  /***
17     Modification that removes an readPlace from a transition.
18   */
19  public class TransitionRemoveReadEdge extends AbstractMethodCall {
20      protected ProtocolEdge _edge;
21      protected ProtocolTransition _transition;
22      protected int _index;
23      protected String _placeid;
24  
25      public TransitionRemoveReadEdge(ProtocolTransition transition, ProtocolEdge edge) {
26  	super(transition.getRoot());
27  	_edge = edge;
28  	_transition = transition;
29  	_index = -1;
30  	_placeid = null;
31      }
32  
33      public TransitionRemoveReadEdge(ProtocolTransition transition, int index) {
34  	this (transition, (ProtocolEdge)transition.getReadEdges()[index]);
35  	_index = index;
36      }
37  
38      public TransitionRemoveReadEdge(ProtocolTransition transition, String placeID) {
39  	this (transition, (ProtocolEdge)transition.getReadEdge(placeID));
40  	_placeid = placeID;
41      }
42  
43      public void marshal(IMethodCallMarshaller encoder, XmlSerializer serializer) throws IOException {
44  	encoder.marshalTransitionRemoveReadEdge(serializer, _transition, _edge);
45      }
46  
47      public Object execute() {
48  	if (_index==-1)
49  	    _transition.__removeReadEdge(_placeid);
50  	else
51  	    _transition.__removeReadEdge(_index);
52  	setExecuted();
53  	return null;
54      }
55  }