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.ArrayList; 021 import java.util.HashMap; 022 import java.util.List; 023 import java.util.Map; 024 025 import org.apache.commons.scxml.PathResolver; 026 027 /** 028 * The class in this SCXML object model that corresponds to the 029 * <invoke> SCXML element. 030 * 031 */ 032 public class Invoke implements NamespacePrefixesHolder, PathResolverHolder, 033 Serializable { 034 035 /** 036 * Serial version UID. 037 */ 038 private static final long serialVersionUID = 1L; 039 040 /** 041 * The type of target to be invoked. 042 */ 043 private String targettype; 044 045 /** 046 * The source URL for the external service. 047 */ 048 private String src; 049 050 /** 051 * The expression that evaluates to the source URL for the 052 * external service. 053 */ 054 private String srcexpr; 055 056 /** 057 * The Map of the params to be sent to the invoked process. 058 * 059 * Remove with deprecated getParams() in 1.0 060 */ 061 private Map params; 062 063 /** 064 * The List of the params to be sent to the invoked process. 065 */ 066 private List paramsList; 067 068 /** 069 * The <finalize> child, may be null. 070 */ 071 private Finalize finalize; 072 073 /** 074 * {@link PathResolver} for resolving the "src" or "srcexpr" result. 075 */ 076 private PathResolver pathResolver; 077 078 /** 079 * The current XML namespaces in the SCXML document for this action node, 080 * preserved for deferred XPath evaluation. 081 */ 082 private Map namespaces; 083 084 /** 085 * Default no-args constructor for Digester. 086 */ 087 public Invoke() { 088 params = new HashMap(); 089 paramsList = new ArrayList(); 090 } 091 092 /** 093 * Get the target type for this <invoke> element. 094 * 095 * @return String Returns the targettype. 096 */ 097 public final String getTargettype() { 098 return targettype; 099 } 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