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 change inducing LDAP operations.
026 *
027 * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
028 * @version $Rev:$, $Date:$
029 */
030 public class LdapOperation
031 {
032 public static final LdapOperation MODIFY = new LdapOperation( "Modify" );
033
034 public static final LdapOperation ADD = new LdapOperation( "Add" );
035
036 public static final LdapOperation DELETE = new LdapOperation( "Delete" );
037
038 public static final LdapOperation MODIFYDN = new LdapOperation( "ModifyDN" );
039
040 public static final LdapOperation MODIFYDN_RENAME = new LdapOperation( "ModifyDN.Rename" );
041
042 public static final LdapOperation MODIFYDN_EXPORT = new LdapOperation( "ModifyDN.Export" );
043
044 public static final LdapOperation MODIFYDN_IMPORT = new LdapOperation( "ModifyDN.Import" );
045
046
047 private final String name;
048
049
050 private LdapOperation( String name )
051 {
052 this.name = name;
053 }
054
055
056 /**
057 * Returns the name of this LDAP operation.
058 */
059 public String getName()
060 {
061 return name;
062 }
063
064
065 public String toString()
066 {
067 return name;
068 }
069
070
071 /**
072 * @see java.lang.Object#hashCode()
073 * @return the instance's hash code
074 */
075 public int hashCode()
076 {
077 int h = 37;
078
079 h = h*17 + ( ( name == null ) ? 0 : name.hashCode() );
080
081 return h;
082 }
083
084
085 /* (non-Javadoc)
086 * @see java.lang.Object#equals(java.lang.Object)
087 */
088 public boolean equals( Object obj )
089 {
090 if ( this == obj )
091 {
092 return true;
093 }
094
095 if ( ! ( obj instanceof LdapOperation ) )
096 {
097 return false;
098 }
099
100 final LdapOperation other = ( LdapOperation ) obj;
101
102 if ( name == null )
103 {
104 if ( other.name != null )
105 {
106 return false;
107 }
108 else
109 {
110 return true;
111 }
112 }
113 else
114 {
115 return name.equals( other.name );
116 }
117 }
118 }