View Javadoc

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     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.Map;
    21
    22  import org.w3c.dom.Node;
    23
    24  /***
    25   * The class in this SCXML object model that corresponds to the SCXML
    26   * &lt;data&gt; child element of the &lt;datamodel&gt; element.
    27   *
    28   */
    29  public class Data implements NamespacePrefixesHolder, Serializable {
    30
    31      /***
    32       * Serial version UID.
    33       */
    34      private static final long serialVersionUID = 1L;
    35
    36      /***
    37       * The name of this data instance, that is used as its identifier.
    38       */
    39      private String name;
    40
    41      /***
    42       * The URL to get the XML data tree from.
    43       */
    44      private String src;
    45
    46      /***
    47       * The expression that evaluates to the value of this data instance.
    48       */
    49      private String expr;
    50
    51      /***
    52       * The child XML data tree, parsed as a Node, cloned per execution
    53       * instance.
    54       */
    55      private Node node;
    56
    57      /***
    58       * The current XML namespaces in the SCXML document for this action node,
    59       * preserved for deferred XPath evaluation. Easier than to scrape node
    60       * above, given the Builtin API.
    61       */
    62      private Map namespaces;
    63
    64      /***
    65       * Constructor.
    66       */
    67      public Data() {
    68          this.name = null;
    69          this.src = null;
    70          this.expr = null;
    71          this.node = null;
    72      }
    73
    74      /***
    75       * Get the name.
    76       *
    77       * @return String The name.
    78       */
    79      public final String getName() {
    80          return name;
    81      }
    82
    83      /***
    84       * Set the name.
    85       *
    86       * @param name The name.
    87       */
    88      public final void setName(final String name) {
    89          this.name = name;
    90      }
    91
    92      /***
    93       * Get the URL where the XML data tree resides.
    94       *
    95       * @return String The URL.
    96       */
    97      public final String getSrc() {
    98          return src;
    99      }
    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 }
    165