001    //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/owscommon_new/OperationsMetadata.java $
002    /*----------------    FILE HEADER  ------------------------------------------
003     This file is part of deegree.
004     Copyright (C) 2001-2006 by:
005     Department of Geography, University of Bonn
006     http://www.giub.uni-bonn.de/deegree/
007     lat/lon GmbH
008     http://www.lat-lon.de
009     This library is free software; you can redistribute it and/or
010     modify it under the terms of the GNU Lesser General Public
011     License as published by the Free Software Foundation; either
012     version 2.1 of the License, or (at your option) any later version.
013     This library is distributed in the hope that it will be useful,
014     but WITHOUT ANY WARRANTY; without even the implied warranty of
015     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016     Lesser General Public License for more details.
017     You should have received a copy of the GNU Lesser General Public
018     License along with this library; if not, write to the Free Software
019     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
020     Contact:
021     Andreas Poth
022     lat/lon GmbH
023     Aennchenstraße 19
024     53177 Bonn
025     Germany
026     E-Mail: poth@lat-lon.de
027     Jens Fitzke
028     lat/lon GmbH
029     Aennchenstraße 19
030     53177 Bonn
031     Germany
032     E-Mail: jens.fitzke@uni-bonn.de
033     ---------------------------------------------------------------------------*/
034    package org.deegree.owscommon_new;
035    
036    import java.util.List;
037    
038    import org.deegree.datatypes.QualifiedName;
039    
040    /**
041     * <code>OperationsMetadata</code> stores the contents of a OperationsMetadata
042     * element according to the OWS common specification version 1.0.0.
043     * 
044     * @author <a href="mailto:schmitz@lat-lon.de">Andreas Schmitz</a>
045     * @author last edited by: $Author: bezema $
046     * 
047     * @version 2.0, $Revision: 6259 $, $Date: 2007-03-20 10:15:15 +0100 (Di, 20 Mär 2007) $
048     * 
049     * @since 2.0
050     */
051    
052    public class OperationsMetadata {
053    
054        private List<Parameter> parameters;
055        
056        private List<DomainType> constraints;
057        
058        private List<Operation> operations;
059        
060        private List<Object> operatesOn;
061    
062        /**
063         * Standard constructor that initializes all encapsulated data.
064         * 
065         * @param parameters
066         * @param constraints
067         * @param operations
068         * @param operatesOn 
069         */
070        public OperationsMetadata( List<Parameter> parameters, List<DomainType> constraints,
071                                   List<Operation> operations, List<Object> operatesOn ) {
072            this.parameters = parameters;
073            this.constraints = constraints;
074            this.operations = operations;
075            this.operatesOn = operatesOn;
076        }
077        
078        /**
079         * @return Returns the constraints.
080         */
081        public List<DomainType> getConstraints() {
082            return constraints;
083        }
084    
085        /**
086         * @return Returns the operations.
087         */
088        public List<Operation> getOperations() {
089            return operations;
090        }
091    
092        /**
093         * @return Returns the parameters.
094         */
095        public List<Parameter> getParameters() {
096            return parameters;
097        }
098        
099        /**
100         * @param name
101         * @return the <code>DomainType</code> with the specified name or null, if there is no
102         * constraint with that name.
103         */
104        public DomainType getConstraint( QualifiedName name ) {
105            for( DomainType constraint : constraints ) {
106                if( constraint.getName().equals( name ) ) {
107                    return constraint;
108                }
109            }
110            
111            return null;
112        }
113        
114        /**
115         * @param name
116         * @return the <code>Parameter</code> with the specified name or null, if there is no
117         * parameter with that name. This method only tests Parameters that are <code>DomainType</code>s.
118         */
119        public Parameter getParameter( QualifiedName name ) {
120            for( Parameter parameter : parameters ) {
121                if( parameter instanceof DomainType ) {
122                    if( ( (DomainType) parameter ).getName().equals( name ) ) {
123                        return parameter;
124                    }
125                }
126            }
127            
128            return null;
129        }
130    
131        /**
132         * @param name
133         * @return the <code>Operation</code> with the specified name or null, if there is no
134         * operation with that name.
135         */
136        public Operation getOperation( QualifiedName name ) {        
137            for( Operation operation : operations ) {
138                if( operation.getName().equals( name ) ) {
139                    return operation;
140                }
141            }
142            
143            return null;
144        }
145    
146        /**
147         * @return Returns the operatesOn.
148         */
149        public List<Object> getOperatesOn() {
150            return operatesOn;
151        }
152        
153    }
154    /* ********************************************************************
155    Changes to this class. What the people have been up to:
156    $Log$
157    Revision 1.3  2006/08/29 13:02:32  poth
158    code formating
159    
160    Revision 1.2  2006/08/24 06:43:04  poth
161    File header corrected
162    
163    Revision 1.1  2006/08/23 07:10:22  schmitz
164    Renamed the owscommon_neu package to owscommon_new.
165    
166    Revision 1.1  2006/08/01 11:46:07  schmitz
167    Added data classes for the new OWS common capabilities framework
168    according to the OWS 1.0.0 common specification.
169    Added name to service identification.
170    
171    
172    
173    ********************************************************************** */