001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 *
019 */
020
021 package org.apache.directory.shared.ldap.trigger;
022
023
024 /**
025 * An enumeration that represents LDAP search scopes.
026 *
027 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
028 * @version $Rev:$, $Date:$
029 */
030 public class SearchScope
031 {
032 public static final SearchScope BASE = new SearchScope( "base" );
033
034 public static final SearchScope ONE = new SearchScope( "one" );
035
036 public static final SearchScope SUBTREE = new SearchScope( "subtree" );
037
038
039 private final String name;
040
041
042 private SearchScope( String name )
043 {
044 this.name = name;
045 }
046
047 public String getName()
048 {
049 return name;
050 }
051
052
053 /* (non-Javadoc)
054 * @see java.lang.Object#toString()
055 */
056 public String toString()
057 {
058 return name;
059 }
060
061
062 /**
063 * @see java.lang.Object#hashCode()
064 * @return the instance's hash code
065 */
066 public int hashCode()
067 {
068 int h = 37;
069
070 h = h*17 + ( ( name == null ) ? 0 : name.hashCode() );
071
072 return h;
073 }
074
075 /* (non-Javadoc)
076 * @see java.lang.Object#equals(java.lang.Object)
077 */
078 public boolean equals( Object obj )
079 {
080 if ( this == obj )
081 return true;
082 if ( obj == null )
083 return false;
084 if ( getClass() != obj.getClass() )
085 return false;
086 final SearchScope other = ( SearchScope ) obj;
087 if ( name == null )
088 {
089 if ( other.name != null )
090 return false;
091 }
092 else if ( !name.equals( other.name ) )
093 return false;
094 return true;
095 }
096 }