in ldap/model/src/main/java/org/apache/directory/api/ldap/model/schema/AbstractSchemaObject.java [655:796]
public boolean equals( Object o1 )
{
if ( this == o1 )
{
return true;
}
if ( !( o1 instanceof AbstractSchemaObject ) )
{
return false;
}
AbstractSchemaObject that = ( AbstractSchemaObject ) o1;
// Two schemaObject are equals if their oid is equal,
// their ObjectType is equal, their names are equals
// their schema name is the same, all their flags are equals,
// the description is the same and their extensions are equals
if ( !compareOid( oid, that.oid ) )
{
return false;
}
// Compare the names
if ( names == null )
{
if ( that.names != null )
{
return false;
}
}
else if ( that.names == null )
{
return false;
}
else
{
int nbNames = 0;
for ( String name : names )
{
if ( !that.names.contains( name ) )
{
return false;
}
nbNames++;
}
if ( nbNames != names.size() )
{
return false;
}
}
if ( schemaName == null )
{
if ( that.schemaName != null )
{
return false;
}
}
else
{
if ( !schemaName.equalsIgnoreCase( that.schemaName ) )
{
return false;
}
}
if ( objectType != that.objectType )
{
return false;
}
if ( extensions != null )
{
if ( that.extensions == null )
{
return false;
}
else
{
for ( Map.Entry<String, List<String>> entry : extensions.entrySet() )
{
String key = entry.getKey();
if ( !that.extensions.containsKey( key ) )
{
return false;
}
List<String> thisValues = entry.getValue();
List<String> thatValues = that.extensions.get( key );
if ( thisValues != null )
{
if ( thatValues == null )
{
return false;
}
else
{
if ( thisValues.size() != thatValues.size() )
{
return false;
}
// TODO compare the values
}
}
else if ( thatValues != null )
{
return false;
}
}
}
}
else if ( that.extensions != null )
{
return false;
}
if ( this.isEnabled != that.isEnabled )
{
return false;
}
if ( this.isObsolete != that.isObsolete )
{
return false;
}
if ( this.description == null )
{
return that.description == null;
}
else
{
return this.description.equalsIgnoreCase( that.description );
}
}