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