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   * <invoke> 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 <finalize> 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 <invoke> 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 <invoke> 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