in plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserSorter.java [448:508]
private int compareRdnValues( IEntry entry1, IEntry entry2 )
{
if ( ( entry1 == null ) && ( entry2 == null ) )
{
return equal();
}
else if ( ( entry1 != null ) && ( entry2 == null ) )
{
return greaterThanEntries();
}
else if ( ( entry1 == null ) && ( entry2 != null ) )
{
return lessThanEntries();
}
else
{
Rdn rdn1 = entry1.getRdn();
Rdn rdn2 = entry2.getRdn();
if ( ( rdn1 == null || rdn1.getName() == null || "".equals( rdn1.getName() ) ) //$NON-NLS-1$
&& ( rdn2 == null || rdn2.getName() == null || "".equals( rdn2.getName() ) ) ) //$NON-NLS-1$
{
return equal();
}
else if ( ( rdn1 == null || rdn1.getName() == null || "".equals( rdn1.getName() ) ) //$NON-NLS-1$
&& !( rdn2 == null || rdn2.getName() == null || "".equals( rdn2.getName() ) ) ) //$NON-NLS-1$
{
return greaterThanEntries();
}
else if ( !( rdn1 == null || rdn1.getName() == null || "".equals( rdn1.getName() ) ) //$NON-NLS-1$
&& ( rdn2 == null || rdn2.getName() == null || "".equals( rdn2.getName() ) ) ) //$NON-NLS-1$
{
return lessThanEntries();
}
String rdn1Value = ( String ) rdn1.getName();
String rdn2Value = ( String ) rdn2.getName();
if ( rdn1Value.matches( "\\d*" ) && !rdn2Value.matches( "\\d*" ) ) //$NON-NLS-1$ //$NON-NLS-2$
{
// return lessThan();
return compareEntries( rdn1Value, rdn2Value );
}
else if ( !rdn1Value.matches( "\\d*" ) && rdn2Value.matches( "\\d*" ) ) //$NON-NLS-1$ //$NON-NLS-2$
{
// return greaterThan();
return compareEntries( rdn1Value, rdn2Value );
}
else if ( rdn2Value.matches( "\\d*" ) && rdn2Value.matches( "\\d*" ) ) //$NON-NLS-1$ //$NON-NLS-2$
{
BigInteger bi1 = new BigInteger( rdn1Value );
BigInteger bi2 = new BigInteger( rdn2Value );
return compare( bi1, bi2 );
// return Integer.parseInt(rdn1.getValue()) -
// Integer.parseInt(rdn2.getValue());
}
else
{
return compareEntries( rdn1Value, rdn2Value );
}
}
}