    001    //$HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.4_testing/src/org/deegree/ogcbase/DescriptionBase.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.ogcbase;
    037
    038    import org.deegree.ogcwebservices.MetadataLink;
    039
    040    /**
    041     * @version $Revision: 18195 $
    042     * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a>
    043     * @author last edited by: $Author: mschneider $
    044     *
    045     * @version 1.0. $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
    046     *
    047     * @since 2.0
    048     */
    049
    050    public class DescriptionBase implements Cloneable {
    051
    052        private String name = null;
    053
    054        private String description = null;
    055
    056        private MetadataLink metadataLink = null;
    057
    058        /**
    059         * just <tt>name</tt> is mandatory
    060         *
    061         * @param name
    062         * @throws OGCException
    063         */
    064        public DescriptionBase( String name ) throws OGCException {
    065            setName( name );
    066        }
    067
    068        /**
    069         * @param description
    070         * @param name
    071         * @param metadataLink
    072         * @throws OGCException
    073         */
    074        public DescriptionBase( String name, String description, MetadataLink metadataLink ) throws OGCException {
    075            this.description = description;
    076            setName( name );
    077            this.metadataLink = metadataLink;
    078        }
    079
    080        /**
    081         * @return Returns the description.
    082         *
    083         */
    084        public String getDescription() {
    085            return description;
    086        }
    087
    088        /**
    089         * @param description
    090         *            The description to set.
    091         *
    092         */
    093        public void setDescription( String description ) {
    094            this.description = description;
    095        }
    096
    097        /**
    098         * @return Returns the metadataLink.
    099         *
    100         */
    101        public MetadataLink getMetadataLink() {
    102            return metadataLink;
    103        }
    104
    105        /**
    106         * @param metadataLink
    107         *            The metadataLink to set.
    108         *
    109         */
    110        public void setMetadataLink( MetadataLink metadataLink ) {
    111            this.metadataLink = metadataLink;
    112        }
    113
    114        /**
    115         * @return Returns the name.
    116         *
    117         */
    118        public String getName() {
    119            return name;
    120        }
    121
    122        /**
    123         * @param name
    124         *            The name to set.
    125         * @throws OGCException
    126         *
    127         */
    128        public void setName( String name )
    129                                throws OGCException {
    130            if ( name == null ) {
    131                throw new OGCException( "name must be <> null for DescriptionBase" );
    132            }
    133            this.name = name;
    134        }
    135
    136        @Override
    137        public Object clone() {
    138            try {
    139                MetadataLink ml = null;
    140                if ( metadataLink != null ) {
    141                    ml = (MetadataLink) metadataLink.clone();
    142                }
    143                return new DescriptionBase( name, description, ml );
    144            } catch ( Exception e ) {
    145                // just return null
    146            }
    147            return null;
    148        }
    149
    150    }