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.model;
018:
019: import java.io.Serializable;
020: import java.util.Map;
021:
022: import org.w3c.dom.Node;
023:
024: /**
025: * The class in this SCXML object model that corresponds to the SCXML
026: * <data> child element of the <datamodel> element.
027: *
028: */
029: public class Data implements NamespacePrefixesHolder, Serializable {
030:
031: /**
032: * Serial version UID.
033: */
034: private static final long serialVersionUID = 1L;
035:
036: /**
037: * The name of this data instance, that is used as its identifier.
038: */
039: private String name;
040:
041: /**
042: * The URL to get the XML data tree from.
043: */
044: private String src;
045:
046: /**
047: * The expression that evaluates to the value of this data instance.
048: */
049: private String expr;
050:
051: /**
052: * The child XML data tree, parsed as a Node, cloned per execution
053: * instance.
054: */
055: private Node node;
056:
057: /**
058: * The current XML namespaces in the SCXML document for this action node,
059: * preserved for deferred XPath evaluation. Easier than to scrape node
060: * above, given the Builtin API.
061: */
062: private Map namespaces;
063:
064: /**
065: * Constructor.
066: */
067: public Data() {
068: this .name = null;
069: this .src = null;
070: this .expr = null;
071: this .node = null;
072: }
073:
074: /**
075: * Get the name.
076: *
077: * @return String The name.
078: */
079: public final String getName() {
080: return name;
081: }
082:
083: /**
084: * Set the name.
085: *
086: * @param name The name.
087: */
088: public final void setName(final String name) {
089: this .name = name;
090: }
091:
092: /**
093: * Get the URL where the XML data tree resides.
094: *
095: * @return String The URL.
096: */
097: public final String getSrc() {
098: return src;
099: }
100:
101: /**
102: * Set the URL where the XML data tree resides.
103: *
104: * @param src The source URL.
105: */
106: public final void setSrc(final String src) {
107: this .src = src;
108: }
109:
110: /**
111: * Get the expression that evaluates to the value of this data instance.
112: *
113: * @return String The expression.
114: */
115: public final String getExpr() {
116: return expr;
117: }
118:
119: /**
120: * Set the expression that evaluates to the value of this data instance.
121: *
122: * @param expr The expression.
123: */
124: public final void setExpr(final String expr) {
125: this .expr = expr;
126: }
127:
128: /**
129: * Get the XML data tree.
130: *
131: * @return Node The XML data tree, parsed as a <code>Node</code>.
132: */
133: public final Node getNode() {
134: return node;
135: }
136:
137: /**
138: * Set the XML data tree.
139: *
140: * @param node The XML data tree, parsed as a <code>Node</code>.
141: */
142: public final void setNode(final Node node) {
143: this .node = node;
144: }
145:
146: /**
147: * Get the XML namespaces at this action node in the SCXML document.
148: *
149: * @return Returns the map of namespaces.
150: */
151: public final Map getNamespaces() {
152: return namespaces;
153: }
154:
155: /**
156: * Set the XML namespaces at this action node in the SCXML document.
157: *
158: * @param namespaces The document namespaces.
159: */
160: public final void setNamespaces(final Map namespaces) {
161: this.namespaces = namespaces;
162: }
163:
164: }
|