public int compare( Object o1, Object o2 )
{
IAttribute attribute1 = null;
IValue value1 = null;
if ( o1 instanceof IAttribute )
{
attribute1 = ( IAttribute ) o1;
}
else if ( o1 instanceof IValue )
{
value1 = ( IValue ) o1;
attribute1 = value1.getAttribute();
}
else if ( o1 instanceof LdifAttrValLine )
{
LdifAttrValLine line1 = ( LdifAttrValLine ) o1;
value1 = ModelConverter.ldifAttrValLineToValue( line1, dummyEntry );
attribute1 = value1.getAttribute();
}
IAttribute attribute2 = null;
IValue value2 = null;
if ( o2 instanceof IAttribute )
{
attribute2 = ( IAttribute ) o2;
}
else if ( o2 instanceof IValue )
{
value2 = ( IValue ) o2;
attribute2 = value2.getAttribute();
}
else if ( o2 instanceof LdifAttrValLine )
{
LdifAttrValLine line2 = ( LdifAttrValLine ) o2;
value2 = ModelConverter.ldifAttrValLineToValue( line2, dummyEntry );
attribute2 = value2.getAttribute();
}
if ( value1 != null && value2 != null )
{
if ( this.getSortByOrDefault() == BrowserCoreConstants.SORT_BY_ATTRIBUTE_DESCRIPTION )
{
if ( value1.getAttribute() != value2.getAttribute() )
{
return this.compareAttributeNames( value1.getAttribute(), value2.getAttribute() );
}
else
{
return this.compareValues( value1, value2 );
}