001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/branches/2.2_testing/src/org/deegree/owscommon/com110/Operation110.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/deegree/
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    
044    package org.deegree.owscommon.com110;
045    
046    import org.deegree.ogcwebservices.getcapabilities.DCPType;
047    import org.deegree.ogcwebservices.getcapabilities.Operation;
048    import org.deegree.owscommon.OWSMetadata;
049    
050    /**
051     * TODO class description
052     * 
053     * @author <a href="mailto:mays@lat-lon.de">Judit Mays</a>
054     * @author last edited by: $Author: apoth $
055     * 
056     * @version 2.0, $Revision: 9346 $, $Date: 2007-12-27 17:39:07 +0100 (Do, 27 Dez 2007) $
057     * 
058     * @since 2.0
059     */
060    public class Operation110 extends Operation {
061    
062            private OWSDomainType110[] parameters;
063            private OWSDomainType110[] constraints;
064            private OWSMetadata[] metadata;
065    
066            /**
067         * Creates a new <code>Operation110</code> object with information on 
068         * <code>DHCP</code>, <code>Parameter</code> and <code>Constraint</code>.
069         * 
070             * @param name
071             * @param dcps
072             * @param parameters
073             * @param constraints
074             * @param metadata
075             */
076            public Operation110( String name, DCPType[] dcps, OWSDomainType110[] parameters, 
077                                                     OWSDomainType110[] constraints, OWSMetadata[] metadata ) {
078                    
079                    super( name, dcps );
080                    
081                    if ( parameters == null ) {
082                            this.parameters = new OWSDomainType110[0];
083                    } else {
084                            this.parameters = parameters;
085                    }
086                    
087                    if ( constraints == null ) {
088                            this.constraints = new OWSDomainType110[0];
089                    } else {
090                            this.constraints = constraints;
091                    }
092                    
093                    if ( metadata == null ) {
094                            this.metadata = new OWSMetadata[0];
095                    } else {
096                            this.metadata = metadata;
097                    }
098            }
099    
100            /**
101             * Returns an array of all the parameter objects. 
102             * If parameters is null, an array of size 0 is returned.
103             * 
104             * @return Returns all the parameters.
105             */
106            public OWSDomainType110[] getParameters110() {
107                    return parameters;
108            }
109            
110            /**
111             * @param name
112             * @return Returns the parameter object to the given name. 
113             */
114            public OWSDomainType110 getParameter110( String name ) {
115                    
116                    for ( int i = 0; i < parameters.length; i++ ) {
117                if ( name.equals( parameters[i].getName() ) ) {
118                    return parameters[i];
119                }
120            }
121                    return null;
122            }
123            
124            /**
125             * Returns an array of all the constraint objects. 
126             * If constraints is null, an array of size 0 is returned.
127             * 
128             * @return Returns all the constraints.
129             */
130            public OWSDomainType110[] getConstraints110() {
131                    return constraints;
132            }
133            
134            /**
135             * @param name
136             * @return Returns the constraint object to the given name.
137             */
138            public OWSDomainType110 getConstraint110( String name ) {
139                    
140                    for ( int i = 0; i < constraints.length; i++ ) {
141                if ( name.equals( constraints[i].getName() ) ) {
142                    return constraints[i];
143                }
144            }
145                    return null;
146            }
147            
148            /**
149             * Returns an array of all the metadata objects. 
150             * If metadata is null, an array of size 0 is returned.
151             *  
152             * @return Returns the metadata.
153             */
154            public OWSMetadata[] getMetadata110() {
155                    return metadata;
156            }       
157    
158    }