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.ArrayList;
    21  import java.util.HashMap;
    22  import java.util.List;
    23  import java.util.Map;
    24
    25  import org.apache.commons.scxml.PathResolver;
    26
    27  /***
    28   * The class in this SCXML object model that corresponds to the
    29   * &lt;invoke&gt; SCXML element.
    30   *
    31   */
    32  public class Invoke implements NamespacePrefixesHolder, PathResolverHolder,
    33          Serializable {
    34
    35      /***
    36       * Serial version UID.
    37       */
    38      private static final long serialVersionUID = 1L;
    39
    40      /***
    41       * The type of target to be invoked.
    42       */
    43      private String targettype;
    44
    45      /***
    46       * The source URL for the external service.
    47       */
    48      private String src;
    49
    50      /***
    51       * The expression that evaluates to the source URL for the
    52       * external service.
    53       */
    54      private String srcexpr;
    55
    56      /***
    57       * The Map of the params to be sent to the invoked process.
    58       *
    59       * Remove with deprecated getParams() in 1.0
    60       */
    61      private Map params;
    62
    63      /***
    64       * The List of the params to be sent to the invoked process.
    65       */
    66      private List paramsList;
    67
    68      /***
    69       * The &lt;finalize&gt; child, may be null.
    70       */
    71      private Finalize finalize;
    72
    73      /***
    74       * {@link PathResolver} for resolving the "src" or "srcexpr" result.
    75       */
    76      private PathResolver pathResolver;
    77
    78      /***
    79       * The current XML namespaces in the SCXML document for this action node,
    80       * preserved for deferred XPath evaluation.
    81       */
    82      private Map namespaces;
    83
    84      /***
    85       * Default no-args constructor for Digester.
    86       */
    87      public Invoke() {
    88          params = new HashMap();
    89          paramsList = new ArrayList();
    90      }
    91
    92      /***
    93       * Get the target type for this &lt;invoke&gt; element.
    94       *
    95       * @return String Returns the targettype.
    96       */
    97      public final String getTargettype() {
    98          return targettype;
    99      }
    100
    101     /***
    102      * Set the target type for this &lt;invoke&gt; element.
    103      *
    104      * @param targettype The targettype to set.
    105      */
    106     public final void setTargettype(final String targettype) {
    107         this.targettype = targettype;
    108     }
    109
    110     /***
    111      * Get the URL for the external service.
    112      *
    113      * @return String The URL.
    114      */
    115     public final String getSrc() {
    116         return src;
    117     }
    118
    119     /***
    120      * Set the URL for the external service.
    121      *
    122      * @param src The source URL.
    123      */
    124     public final void setSrc(final String src) {
    125         this.src = src;
    126     }
    127
    128     /***
    129      * Get the expression that evaluates to the source URL for the
    130      * external service.
    131      *
    132      * @return String The source expression.
    133      */
    134     public final String getSrcexpr() {
    135         return srcexpr;
    136     }
    137
    138     /***
    139      * Set the expression that evaluates to the source URL for the
    140      * external service.
    141      *
    142      * @param srcexpr The source expression.
    143      */
    144     public final void setSrcexpr(final String srcexpr) {
    145         this.srcexpr = srcexpr;
    146     }
    147
    148     /***
    149      * Get the params Map.
    150      *
    151      * @return Map The params map.
    152      * @deprecated Remove in v1.0, use params() instead
    153      */
    154     public final Map getParams() {
    155         return params;
    156     }
    157
    158     /***
    159      * Get the list of {@link Param}s.
    160      *
    161      * @return List The params list.
    162      */
    163     public final List params() {
    164         return paramsList;
    165     }
    166
    167     /***
    168      * Add this param to this invoke.
    169      *
    170      * @param param The invoke parameter.
    171      */
    172     public final void addParam(final Param param) {
    173         params.put(param.getName(), param.getExpr());
    174         paramsList.add(param);
    175     }
    176
    177     /***
    178      * Get the Finalize for this Invoke.
    179      *
    180      * @return Finalize The Finalize for this Invoke.
    181      */
    182     public final Finalize getFinalize() {
    183         return finalize;
    184     }
    185
    186     /***
    187      * Set the Finalize for this Invoke.
    188      *
    189      * @param finalize The Finalize for this Invoke.
    190      */
    191     public final void setFinalize(final Finalize finalize) {
    192         this.finalize = finalize;
    193     }
    194
    195     /***
    196      * Get the {@link PathResolver}.
    197      *
    198      * @return Returns the pathResolver.
    199      */
    200     public PathResolver getPathResolver() {
    201         return pathResolver;
    202     }
    203
    204     /***
    205      * Set the {@link PathResolver}.
    206      *
    207      * @param pathResolver The pathResolver to set.
    208      */
    209     public void setPathResolver(final PathResolver pathResolver) {
    210         this.pathResolver = pathResolver;
    211     }
    212
    213     /***
    214      * Get the XML namespaces at this action node in the SCXML document.
    215      *
    216      * @return Returns the map of namespaces.
    217      */
    218     public final Map getNamespaces() {
    219         return namespaces;
    220     }
    221
    222     /***
    223      * Set the XML namespaces at this action node in the SCXML document.
    224      *
    225      * @param namespaces The document namespaces.
    226      */
    227     public final void setNamespaces(final Map namespaces) {
    228         this.namespaces = namespaces;
    229     }
    230
    231 }
    232