01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.commons.scxml.model;
18:
19: import java.io.Serializable;
20: import java.util.ArrayList;
21: import java.util.List;
22:
23: /**
24: * An abstract base class for containers of executable elements in SCXML,
25: * such as <onentry> and <onexit>.
26: *
27: */
28: public abstract class Executable implements Serializable {
29:
30: /**
31: * The set of executable elements (those that inheriting from
32: * Action) that are contained in this Executable.
33: */
34: private List actions;
35:
36: /**
37: * The parent container, for traceability.
38: */
39: private TransitionTarget parent;
40:
41: /**
42: * Constructor.
43: */
44: public Executable() {
45: super ();
46: this .actions = new ArrayList();
47: }
48:
49: /**
50: * Get the executable actions contained in this Executable.
51: *
52: * @return Returns the actions.
53: */
54: public final List getActions() {
55: return actions;
56: }
57:
58: /**
59: * Add an Action to the list of executable actions contained in
60: * this Executable.
61: *
62: * @param action The action to add.
63: */
64: public final void addAction(final Action action) {
65: if (action != null) {
66: this .actions.add(action);
67: }
68: }
69:
70: /**
71: * Get the TransitionTarget parent.
72: *
73: * @return Returns the parent.
74: */
75: public final TransitionTarget getParent() {
76: return parent;
77: }
78:
79: /**
80: * Set the TransitionTarget parent.
81: *
82: * @param parent The parent to set.
83: */
84: public final void setParent(final TransitionTarget parent) {
85: this.parent = parent;
86: }
87:
88: }
|