001    // $HeadURL: https://svn.wald.intevation.org/svn/deegree/base/branches/2.3_testing/src/org/deegree/security/drm/model/RightType.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.security.drm.model;
037    
038    /**
039     * A <code>RightType</code> defines a certain type of right, e.g. an 'access' right. It
040     * encapsulates a unique id and an also unique name.
041     *
042     *
043     * @version $Revision: 18195 $
044     * @author <a href="mailto:mschneider@lat-lon.de">Markus Schneider</a>
045     * @author last edited by: $Author: mschneider $
046     *
047     * @version 1.0. $Revision: 18195 $, $Date: 2009-06-18 17:55:39 +0200 (Do, 18. Jun 2009) $
048     *
049     * @since 2.0
050     */
051    public class RightType {
052    
053        // predefined right types
054        // general
055        public static final RightType ACCESS = new RightType( 1, "access" );
056    
057        public static final RightType QUERY = new RightType( 2, "query" );
058    
059        public static final RightType DELETE = new RightType( 3, "delete" );
060    
061        public static final RightType DELETE_RESPONSE = new RightType( 1003, "delete_Response" );
062    
063        public static final RightType INSERT = new RightType( 4, "insert" );
064    
065        public static final RightType INSERT_RESPONSE = new RightType( 1004, "insert_Response" );
066    
067        public static final RightType EXECUTE = new RightType( 5, "execute" );
068    
069        public static final RightType UPDATE = new RightType( 6, "update" );
070    
071        public static final RightType UPDATE_RESPONSE = new RightType( 1006, "update_Response" );
072    
073        public static final RightType VIEW = new RightType( 7, "view" );
074    
075        public static final RightType GRANT = new RightType( 8, "grant" );
076    
077        // WMS
078        public static final RightType GETMAP = new RightType( 9, "GetMap" );
079    
080        public static final RightType GETMAP_RESPONSE = new RightType( 1009, "GetMap_Response" );
081    
082        public static final RightType GETFEATUREINFO = new RightType( 10, "GetFeatureInfo" );
083    
084        public static final RightType GETFEATUREINFO_RESPONSE = new RightType( 1010, "GetFeatureInfo_Response" );
085    
086        public static final RightType GETLEGENDGRAPHIC = new RightType( 11, "GetLegendGraphic" );
087    
088        public static final RightType GETLEGENDGRAPHIC_RESPONSE = new RightType( 1011, "GetLegendGraphic_Response" );
089    
090        // WFS
091        public static final RightType GETFEATURE = new RightType( 13, "GetFeature" );
092    
093        public static final RightType GETFEATURE_RESPONSE = new RightType( 1013, "GetFeature_Response" );
094    
095        public static final RightType DESCRIBEFEATURETYPE = new RightType( 14, "DescribeFeatureType" );
096    
097        public static final RightType DESCRIBEFEATURETYPE_RESPONSE = new RightType( 1014, "DescribeFeatureType_Response" );
098    
099        // WCS
100        public static final RightType GETCOVERAGE = new RightType( 15, "GetCoverage" );
101    
102        public static final RightType GETCOVERAGE_RESPONSE = new RightType( 1015, "GetCoverage_Response" );
103    
104        public static final RightType DESCRIBECOVERAGE = new RightType( 16, "DescribeCoverage" );
105    
106        public static final RightType DESCRIBECOVERAGE_RESPONSE = new RightType( 1016, "DescribeCoverage_Response" );
107    
108        // CSW
109        public static final RightType GETRECORDS = new RightType( 17, "GetRecords" );
110    
111        public static final RightType GETRECORDS_RESPONSE = new RightType( 1017, "GetRecords_Response" );
112    
113        public static final RightType GETRECORDBYID = new RightType( 18, "GetRecordById" );
114    
115        public static final RightType GETRECORDBYID_RESPONSE = new RightType( 1018, "GetRecordById_Response" );
116    
117        public static final RightType DESCRIBERECORDTYPE = new RightType( 19, "DescribeRecordType" );
118    
119        public static final RightType DESCRIBERECORDTYPE_RESPONSE = new RightType( 1019, "DescribeRecordType_Response" );
120    
121        // ebrim CSW profile
122        public static final RightType GETREPOSITORYITEM = new RightType( 20, "GetRepositoryItem" );
123    
124        public static final RightType GETREPOSITORYITEM_RESPONSE = new RightType( 1020, "GetRepositoryItem_Response" );
125    
126        private int id;
127    
128        private String name;
129    
130        /**
131         * Creates a new <code>RightType</code>-instance.
132         *
133         * @param id
134         * @param name
135         */
136        public RightType( int id, String name ) {
137            this.id = id;
138            this.name = name;
139        }
140    
141        /**
142         * Returns the unique identifier of this <code>RightType</code>.
143         */
144        public int getID() {
145            return id;
146        }
147    
148        /**
149         * Returns the name of this <code>RightType</code>.
150         *
151         */
152        public String getName() {
153            return name;
154        }
155    
156        /**
157         * Indicates whether some other <code>RightType</code> instance is "equal to" this one.
158         *
159         * @param that
160         */
161        public boolean equals( Object that ) {
162            if ( that instanceof RightType ) {
163                return ( ( (RightType) that ).getID() == getID() );
164            }
165            return false;
166        }
167    
168        /**
169         * Returns a hash code value for the object. This method is supported for the benefit of
170         * hashtables such as those provided by java.util.Hashtable.
171         */
172        public int hashCode() {
173            return id;
174        }
175    
176        /**
177         * Returns a <code>String</code> representation of this object.
178         */
179        public String toString() {
180            StringBuffer sb = new StringBuffer( "Id: " ).append( id ).append( ", Name: " ).append( name );
181            return sb.toString();
182        }
183    }