001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.commons.scxml;
018:
019: import java.util.ArrayList;
020: import java.util.Collection;
021: import java.util.List;
022:
023: /**
024: * A logical unit of progression in the execution of a SCXML model.
025: *
026: */
027: public class Step {
028:
029: /**
030: * Constructor.
031: */
032: public Step() {
033: this .externalEvents = new ArrayList();
034: this .beforeStatus = new Status();
035: this .afterStatus = new Status();
036: this .exitList = new ArrayList();
037: this .entryList = new ArrayList();
038: this .transitList = new ArrayList();
039: }
040:
041: /**
042: * @param externalEvents The external events received in this
043: * unit of progression
044: * @param beforeStatus The before status
045: */
046: public Step(final Collection externalEvents,
047: final Status beforeStatus) {
048: if (externalEvents != null) {
049: this .externalEvents = externalEvents;
050: } else {
051: this .externalEvents = new ArrayList();
052: }
053: if (beforeStatus != null) {
054: this .beforeStatus = beforeStatus;
055: } else {
056: this .beforeStatus = new Status();
057: }
058: this .afterStatus = new Status();
059: this .exitList = new ArrayList();
060: this .entryList = new ArrayList();
061: this .transitList = new ArrayList();
062: }
063:
064: /**
065: * The external events in this step.
066: */
067: private Collection externalEvents;
068:
069: /**
070: * The status before this step.
071: */
072: private Status beforeStatus;
073:
074: /**
075: * The status after this step.
076: */
077: private Status afterStatus;
078:
079: /**
080: * The list of TransitionTargets that were exited during this step.
081: */
082: private List exitList;
083:
084: /**
085: * The list of TransitionTargets that were entered during this step.
086: */
087: private List entryList;
088:
089: /**
090: * The list of Transitions taken during this step.
091: */
092: private List transitList;
093:
094: /**
095: * @return Returns the afterStatus.
096: */
097: public Status getAfterStatus() {
098: return afterStatus;
099: }
100:
101: /**
102: * @param afterStatus The afterStatus to set.
103: */
104: public void setAfterStatus(final Status afterStatus) {
105: this .afterStatus = afterStatus;
106: }
107:
108: /**
109: * @return Returns the beforeStatus.
110: */
111: public Status getBeforeStatus() {
112: return beforeStatus;
113: }
114:
115: /**
116: * @param beforeStatus The beforeStatus to set.
117: */
118: public void setBeforeStatus(final Status beforeStatus) {
119: this .beforeStatus = beforeStatus;
120: }
121:
122: /**
123: * @return Returns the entryList.
124: */
125: public List getEntryList() {
126: return entryList;
127: }
128:
129: /**
130: * @return Returns the exitList.
131: */
132: public List getExitList() {
133: return exitList;
134: }
135:
136: /**
137: * @return Returns the externalEvents.
138: */
139: public Collection getExternalEvents() {
140: return externalEvents;
141: }
142:
143: /**
144: * @return Returns the transitList.
145: */
146: public List getTransitList() {
147: return transitList;
148: }
149:
150: }
|