You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2010/04/30 12:39:30 UTC
svn commit: r939626 -
/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java
Author: kayyagari
Date: Fri Apr 30 10:39:30 2010
New Revision: 939626
URL: http://svn.apache.org/viewvc?rev=939626&view=rev
Log:
fixed for the case where CSN is sent encapsulated in StringValue object
Modified:
directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java
Modified: directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java?rev=939626&r1=939625&r2=939626&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java (original)
+++ directory/shared/trunk/ldap/src/main/java/org/apache/directory/shared/ldap/schema/comparators/CsnComparator.java Fri Apr 30 10:39:30 2010
@@ -21,6 +21,7 @@ package org.apache.directory.shared.ldap
import org.apache.directory.shared.ldap.csn.Csn;
+import org.apache.directory.shared.ldap.entry.StringValue;
import org.apache.directory.shared.ldap.schema.LdapComparator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -38,7 +39,7 @@ import org.slf4j.LoggerFactory;
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
* @version $Rev$
*/
-public class CsnComparator extends LdapComparator<String>
+public class CsnComparator extends LdapComparator<Object>
{
/** A logger for this class */
private static final Logger LOG = LoggerFactory.getLogger( CsnComparator.class );
@@ -59,46 +60,47 @@ public class CsnComparator extends LdapC
/**
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare( String csnStr1, String csnStr2 )
+ public int compare( Object csnObj1, Object csnObj2 )
{
- LOG.debug( "comparing CSN objects '{}' with '{}'", csnStr1, csnStr2 );
+ LOG.debug( "comparing CSN objects '{}' with '{}'", csnObj1, csnObj2 );
// -------------------------------------------------------------------
// Handle some basis cases
// -------------------------------------------------------------------
- if ( csnStr1 == null )
+ if ( csnObj1 == null )
{
- return ( csnStr2 == null ) ? 0 : -1;
+ return ( csnObj2 == null ) ? 0 : -1;
}
- if ( csnStr2 == null )
+ if ( csnObj2 == null )
{
return 1;
}
- Csn csn1 = new Csn( csnStr1 );
- Csn csn2 = new Csn( csnStr2 );
+ String csnStr1 = null;
+ String csnStr2 = null;
- if ( csn1.getTimestamp() != csn2.getTimestamp() )
+ if( csnObj1 instanceof StringValue )
{
- return ( csn1.getTimestamp() < csn2.getTimestamp() ? -1 : 1 );
+ csnStr1 = ( ( StringValue ) csnObj1 ).get();
}
-
- if ( csn1.getChangeCount() != csn2.getChangeCount() )
+ else
{
- return ( csn1.getChangeCount() < csn2.getChangeCount() ? -1 : 1 );
+ csnStr1 = csnObj1.toString();
}
-
- if ( csn1.getReplicaId() != csn2.getReplicaId() )
+
+ if( csnObj2 instanceof StringValue )
{
- return ( csn1.getReplicaId() < csn2.getReplicaId() ? -1 : 1 );
+ csnStr2 = ( ( StringValue ) csnObj2 ).get();
}
-
- if ( csn1.getOperationNumber() != csn2.getOperationNumber() )
+ else
{
- return ( csn1.getOperationNumber() < csn2.getOperationNumber() ? -1 : 1 );
+ csnStr2 = csnObj2.toString();
}
- return 0;
+ Csn csn1 = new Csn( csnStr1 );
+ Csn csn2 = new Csn( csnStr2 );
+
+ return csn1.compareTo( csn2 );
}
}