001: //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/trunk/src/org/deegree/ogcwebservices/wps/describeprocess/ProcessDescription.java $
002: /*---------------- FILE HEADER ------------------------------------------
003:
004: This file is part of deegree.
005: Copyright (C) 2001-2008 by:
006: EXSE, Department of Geography, University of Bonn
007: http://www.giub.uni-bonn.de/exse/
008: lat/lon GmbH
009: http://www.lat-lon.de
010:
011: This library is free software; you can redistribute it and/or
012: modify it under the terms of the GNU Lesser General Public
013: License as published by the Free Software Foundation; either
014: version 2.1 of the License, or (at your option) any later version.
015:
016: This library is distributed in the hope that it will be useful,
017: but WITHOUT ANY WARRANTY; without even the implied warranty of
018: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
019: Lesser General Public License for more details.
020:
021: You should have received a copy of the GNU Lesser General Public
022: License along with this library; if not, write to the Free Software
023: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
024:
025: Contact:
026:
027: Andreas Poth
028: lat/lon GmbH
029: Aennchenstraße 19
030: 53177 Bonn
031: Germany
032: E-Mail: poth@lat-lon.de
033:
034: Prof. Dr. Klaus Greve
035: Department of Geography
036: University of Bonn
037: Meckenheimer Allee 166
038: 53115 Bonn
039: Germany
040: E-Mail: greve@giub.uni-bonn.de
041:
042: ---------------------------------------------------------------------------*/
043: package org.deegree.ogcwebservices.wps.describeprocess;
044:
045: import java.util.ArrayList;
046: import java.util.List;
047:
048: import org.deegree.datatypes.Code;
049: import org.deegree.ogcwebservices.MetadataType;
050: import org.deegree.ogcwebservices.wps.ProcessBrief;
051:
052: /**
053: *
054: * ProcessDescription.java
055: *
056: * Created on 09.03.2006. 22:39:07h
057: *
058: * Full description of a process.
059: *
060: * @author <a href="mailto:christian@kiehle.org">Christian Kiehle</a>
061: * @author <a href="mailto:christian.heier@gmx.de">Christian Heier</a>
062: * @author last edited by: $Author:wanhoff$
063: *
064: * @version $Revision: 10196 $, $Date:20.03.2007$
065: */
066: public class ProcessDescription extends ProcessBrief {
067:
068: /**
069: *
070: * @param resonsibleClass
071: * @param identifier
072: * @param title
073: * @param _abstract
074: * @param processVersion
075: * @param metadata
076: * @param inputs
077: * @param outputs
078: * @param statusSupported
079: * @param storeSupported
080: */
081: public ProcessDescription(String resonsibleClass, Code identifier,
082: String title, String _abstract, String processVersion,
083: List<MetadataType> metadata, DataInputs inputs,
084: ProcessOutputs outputs, Boolean statusSupported,
085: Boolean storeSupported) {
086: super (identifier, title, _abstract, processVersion, metadata);
087: this .responsibleClass = resonsibleClass;
088: this .dataInputs = inputs;
089: this .processOutputs = outputs;
090: this .statusSupported = statusSupported;
091: this .storeSupported = storeSupported;
092: }
093:
094: /**
095: *
096: */
097: protected String responsibleClass;
098:
099: /**
100: * List of the inputs to this process. In almost all cases, at least one process input is
101: * required. However, no process inputs may be identified when all the inputs are predetermined
102: * fixed resources. In this case, those resources shall be identified in the ows:Abstract
103: * element that describes the process
104: */
105: protected DataInputs dataInputs;
106:
107: /**
108: * List of outputs which will or can result from executing the process.
109: */
110: protected ProcessOutputs processOutputs;
111:
112: /**
113: * Indicates if the Execute operation response can be returned quickly with status information,
114: * or will not be returned until process execution is complete. If "statusSupported" is "true",
115: * the Execute operation request may include "status" equals "true", directing that the Execute
116: * operation response be returned quickly with status information. By default, status
117: * information is not provided for this process, and the Execute operation response is not
118: * returned until process execution is complete.
119: */
120: protected Boolean statusSupported;
121:
122: /**
123: * Indicates if the ComplexData outputs from this process can be stored by the WPS server as
124: * web-accessible resources. If "storeSupported" is "true", the Execute operation request may
125: * include "store" equals "true", directing that all ComplexData outputs of the process be
126: * stored so that the client can retrieve them as required. By default for this process, storage
127: * is not supported and all outputs are returned encoded in the Execute response.
128: */
129: protected Boolean storeSupported;
130:
131: /**
132: * @return Returns the dataInputs.
133: */
134: public DataInputs getDataInputs() {
135: return dataInputs;
136: }
137:
138: /**
139: * @param value
140: * The dataInputs to set.
141: */
142: public void setDataInputs(DataInputs value) {
143: this .dataInputs = value;
144: }
145:
146: /**
147: * @return Returns the processOutputs.
148: */
149: public ProcessOutputs getProcessOutputs() {
150: return processOutputs;
151: }
152:
153: /**
154: * @param value
155: * The processOutputs to set.
156: */
157: public void setProcessOutputs(ProcessOutputs value) {
158: this .processOutputs = value;
159: }
160:
161: /**
162: *
163: * @return
164: */
165: public boolean isStatusSupported() {
166: return statusSupported;
167: }
168:
169: /**
170: * @param value
171: * The statusSupported to set.
172: */
173: public void setStatusSupported(Boolean value) {
174: this .statusSupported = value;
175: }
176:
177: /**
178: *
179: * @return
180: */
181: public boolean isStoreSupported() {
182: return storeSupported;
183: }
184:
185: /**
186: * @param value
187: * The storeSupported to set.
188: */
189: public void setStoreSupported(Boolean value) {
190: this .storeSupported = value;
191: }
192:
193: /**
194: * TODO add documentation here
195: *
196: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
197: * @author last edited by: $Author:wanhoff$
198: *
199: * @version $Revision: 10196 $, $Date:20.03.2007$
200: */
201: public static class DataInputs {
202:
203: /**
204: *
205: *
206: * Unordered list of one or more descriptions of the inputs that can be accepted by this
207: * process, including all required and optional inputs. Where an input is optional because a
208: * default value exists, that default value must be identified in the "ows:Abstract" element
209: * for that input, except in the case of LiteralData, where the default must be indicated in
210: * the corresponding ows:DefaultValue element. Where an input is optional because it depends
211: * on the value(s) of other inputs, this must be indicated in the ows:Abstract element for
212: * that input.
213: *
214: *
215: */
216: private List<InputDescription> inputDescriptions;
217:
218: /**
219: * @return Returns the input.
220: */
221: public List<InputDescription> getInputDescriptions() {
222: if (inputDescriptions == null) {
223: inputDescriptions = new ArrayList<InputDescription>();
224: }
225: return this .inputDescriptions;
226: }
227:
228: /**
229: * @param inputDescriptions
230: */
231: public void setInputDescriptions(
232: List<InputDescription> inputDescriptions) {
233: this .inputDescriptions = inputDescriptions;
234: }
235:
236: }
237:
238: /**
239: * TODO add documentation here
240: *
241: * @author <a href="mailto:poth@lat-lon.de">Andreas Poth </a>
242: * @author last edited by: $Author:wanhoff$
243: *
244: * @version $Revision: 10196 $, $Date:20.03.2007$
245: */
246: public static class ProcessOutputs {
247:
248: /**
249: * Unordered list of one or more descriptions of all the outputs that can result from
250: * executing this process. At least one output is required from each process.
251: */
252: protected List<OutputDescription> output;
253:
254: /**
255: * @return Returns the output.
256: */
257: public List<OutputDescription> getOutput() {
258: if (output == null) {
259: output = new ArrayList<OutputDescription>();
260: }
261: return this .output;
262: }
263:
264: }
265:
266: /**
267: * @return Returns the responsibleClass.
268: */
269: public String getResponsibleClass() {
270: return responsibleClass;
271: }
272:
273: }
|