001 //$HeadURL: svn+ssh://jwilden@svn.wald.intevation.org/deegree/base/branches/2.5_testing/src/org/deegree/ogcwebservices/wps/execute/IOValue.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.execute; 037 038 import java.net.URI; 039 import java.net.URL; 040 041 import org.deegree.datatypes.Code; 042 import org.deegree.datatypes.values.TypedLiteral; 043 import org.deegree.model.spatialschema.Envelope; 044 import org.deegree.ogcwebservices.wps.WPSDescription; 045 046 /** 047 * IOValue.java 048 * 049 * Created on 24.03.2006. 16:33:24h 050 * 051 * Value of one input to a process or one output from 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: mschneider $ 056 * 057 * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18 Jun 2009) $ 058 */ 059 public class IOValue extends WPSDescription { 060 061 /** 062 * Identifies this input or output value as a web accessible resource, and references that 063 * resource. For an input, this element may be used by a client for any process input coded as 064 * ComplexData in the ProcessDescription. For an output, this element shall be used by a server 065 * when "store" in the Execute request is "true". 066 */ 067 068 private ComplexValueReference complexValueReference; 069 070 /** 071 * Identifies this input or output value as a complex value data structure encoded in XML (e.g., 072 * using GML), and provides that complex value data structure. For an input, this element may be 073 * used by a client for any process input coded as ComplexData in the ProcessDescription. For an 074 * output, this element shall be used by a server when "store" in the Execute request is 075 * "false". 076 */ 077 private ComplexValue complexValue; 078 079 /** 080 * Identifies this input or output value as a literal value of a simple quantity (e.g., one 081 * number), and provides that value. 082 */ 083 private TypedLiteral literalValue; 084 085 /** 086 * Identifies this input or output value as an ows:BoundingBox data structure, and provides that 087 * ows:BoundingBox data structure. 088 */ 089 private Envelope boundingBoxValue; 090 091 /** 092 * 093 * @param identifier 094 * @param title 095 * @param _abstract 096 * @param boundingBoxValue 097 * @param complexValue 098 * @param complexValueReference 099 * @param literalValue 100 */ 101 public IOValue( Code identifier, String title, String _abstract, Envelope boundingBoxValue, 102 ComplexValue complexValue, ComplexValueReference complexValueReference, 103 TypedLiteral literalValue ) { 104 super( identifier, title, _abstract ); 105 this.boundingBoxValue = boundingBoxValue; 106 this.complexValue = complexValue; 107 this.complexValueReference = complexValueReference; 108 this.literalValue = literalValue; 109 } 110 111 /** 112 * 113 * @return complexValueReference 114 */ 115 public ComplexValueReference getComplexValueReference() { 116 return complexValueReference; 117 } 118 119 /** 120 * 121 * @param value 122 */ 123 public void setComplexValueReference( ComplexValueReference value ) { 124 this.complexValueReference = value; 125 } 126 127 /** 128 * 129 * @return complexValue 130 */ 131 public ComplexValue getComplexValue() { 132 return complexValue; 133 } 134 135 /** 136 * 137 * @param value 138 */ 139 public void setComplexValue( ComplexValue value ) { 140 this.complexValue = value; 141 } 142 143 /** 144 * 145 * @return literalValue 146 */ 147 public TypedLiteral getLiteralValue() { 148 return literalValue; 149 } 150 151 /** 152 * 153 * @param value 154 */ 155 public void setLiteralValue( TypedLiteral value ) { 156 this.literalValue = value; 157 } 158 159 /** 160 * 161 * @return boundingBoxValue 162 */ 163 public Envelope getBoundingBoxValue() { 164 return boundingBoxValue; 165 } 166 167 /** 168 * 169 * @return boundingBoxValueType 170 */ 171 public boolean isBoundingBoxValueType() { 172 boolean boundingBoxValueType = false; 173 if ( null != boundingBoxValue ) { 174 boundingBoxValueType = true; 175 } 176 return boundingBoxValueType; 177 } 178 179 /** 180 * 181 * @return complexValueReferenceType 182 */ 183 public boolean isComplexValueReferenceType() { 184 boolean complexValueReferenceType = false; 185 if ( null != complexValueReference ) { 186 complexValueReferenceType = true; 187 } 188 return complexValueReferenceType; 189 } 190 191 /** 192 * 193 * @return true if the value is complex 194 */ 195 public boolean isComplexValueType() { 196 boolean complexValueType = false; 197 if ( null != complexValue ) { 198 complexValueType = true; 199 } 200 return complexValueType; 201 } 202 203 /** 204 * @return true if the value is a literal 205 */ 206 public boolean isLiteralValueType() { 207 boolean literalValueType = false; 208 if ( null != literalValue ) { 209 literalValueType = true; 210 } 211 return literalValueType; 212 } 213 214 /** 215 * 216 * @param value 217 */ 218 public void setBoundingBoxValue( Envelope value ) { 219 this.boundingBoxValue = value; 220 } 221 222 /** 223 * <code>ComplexValueReference</code> is simple wrapper class. 224 * 225 * @author <a href="mailto:christian@kiehle.org">Christian Kiehle</a> 226 * 227 * @author last edited by: $Author: mschneider $ 228 * 229 * @version $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18 Jun 2009) $ 230 * 231 */ 232 public static class ComplexValueReference extends ComplexValueEncoding { 233 234 protected URL reference; 235 236 /** 237 * @param encoding 238 * @param format 239 * @param schema 240 * @param reference 241 */ 242 public ComplexValueReference( String format, URI encoding, URL schema, URL reference ) { 243 super( format, encoding, schema ); 244 this.reference = reference; 245 } 246 247 /** 248 * @return the reference to the data 249 */ 250 public URL getReference() { 251 return reference; 252 } 253 254 } 255 256 }