001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/ogcwebservices/wps/describeprocess/InputDescription.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 org.deegree.datatypes.Code;
046    import org.deegree.ogcwebservices.wps.WPSDescription;
047    
048    /**
049     * InputDescription.java
050     * 
051     * Created on 09.03.2006. 22:33:58h
052     * 
053     * Description of an input to a process.
054     * 
055     * @author <a href="mailto:christian@kiehle.org">Christian Kiehle</a>
056     * @author <a href="mailto:christian.heier@gmx.de">Christian Heier</a>
057     * @author last edited by: $Author:wanhoff$
058     * 
059     * @version $Revision: 9345 $, $Date:20.03.2007$
060     */
061    public class InputDescription extends WPSDescription {
062    
063        /**
064         * Indicates that this input shall be a complex data structure (such as a GML document), and
065         * provides a list of formats and encodings supported for this Input. The value of this
066         * ComplexData structure can be input either embedded in the Execute request or remotely
067         * accessible to the server. This element also provides a list of formats, encodings, and
068         * schemas supported for this output. The client can select from among the identified
069         * combinations of formats, encodings, and schemas to specify the form of the output. This
070         * allows for complete specification of particular versions of GML, or image formats.
071         */
072        protected ComplexData complexData;
073    
074        /**
075         * Indicates that this input shall be a simple numeric value or character string that is
076         * embedded in the execute request, and describes the possible values.
077         */
078        protected LiteralInput literalData;
079    
080        /**
081         * Indicates that this input shall be a BoundingBox data structure that is embedded in the
082         * execute request, and provides a list of the CRSs supported for this Bounding Box.
083         */
084        protected SupportedCRSs boundingBoxData;
085    
086        /**
087         * The minimum number of times that values for this parameter are required. If MinimumOccurs is
088         * "0", this data input is optional. If MinimumOccurs is "1" or if this element is omitted, this
089         * process input is required.
090         */
091        protected int minimumOccurs;
092    
093        /**
094         * 
095         * @param identifier
096         * @param title
097         * @param _abstract
098         * @param boundingBoxData
099         * @param complexData
100         * @param literalData
101         * @param occurs
102         */
103        public InputDescription( Code identifier, String title, String _abstract,
104                                 SupportedCRSs boundingBoxData, ComplexData complexData,
105                                 LiteralInput literalData, int occurs ) {
106            super( identifier, title, _abstract );
107            this.boundingBoxData = boundingBoxData;
108            this.complexData = complexData;
109            this.literalData = literalData;
110            minimumOccurs = occurs;
111        }
112    
113        /**
114         * @return Returns the complexData.
115         */
116        public ComplexData getComplexData() {
117            return complexData;
118        }
119    
120        /**
121         * @param value
122         *            The complexData to set.
123         */
124        public void setComplexData( ComplexData value ) {
125            this.complexData = value;
126        }
127    
128        /**
129         * @return Returns the literalData.
130         */
131        public LiteralInput getLiteralData() {
132            return literalData;
133        }
134    
135        /**
136         * @param value
137         *            The literalData to set.
138         */
139        public void setLiteralData( LiteralInput value ) {
140            this.literalData = value;
141        }
142    
143        /**
144         * @return Returns the boundingBoxData.
145         */
146        public SupportedCRSs getBoundingBoxData() {
147            return boundingBoxData;
148        }
149    
150        /**
151         * @param value
152         *            The boundingBoxData to set.
153         */
154        public void setBoundingBoxData( SupportedCRSs value ) {
155            this.boundingBoxData = value;
156        }
157    
158        /**
159         * @return Returns the minimumOccurs.
160         */
161        public int getMinimumOccurs() {
162            return minimumOccurs;
163        }
164    
165        /**
166         * @param value
167         *            The minimumOccurs to set.
168         */
169        public void setMinimumOccurs( int value ) {
170            this.minimumOccurs = value;
171        }
172    
173        /**
174         * @return
175         */
176        public boolean isBoundingBoxData() {
177            boolean isBoundingBoxData = false;
178            if ( null != boundingBoxData ) {
179                isBoundingBoxData = true;
180            }
181            return isBoundingBoxData;
182        }
183    
184        /**
185         * @return
186         */
187        public boolean isComplexData() {
188            boolean isComplexData = false;
189            if ( null != complexData ) {
190                isComplexData = true;
191            }
192            return isComplexData;
193        }
194    
195        /**
196         * @return
197         */
198        public boolean isLiteralData() {
199            boolean isLiteralData = false;
200            if ( null != literalData ) {
201                isLiteralData = true;
202            }
203            return isLiteralData;
204        }
205    }