/** * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) */ @SuppressWarnings("unchecked") public int compare( E o1, E o2 ) { if ( wrapped == null ) { try { wrapped = (Comparator<E>)schemaManager.lookupComparatorRegistry( matchingRuleOid ); } catch ( LdapException e ) { throw new RuntimeException( I18n.err( I18n.ERR_04221, matchingRuleOid ) ); } } return wrapped.compare( o1, o2 ); }
/** * @param schemaManager the schemaManager to set */ public void setSchemaManager( SchemaManager schemaManager ) { if ( wrapped == null ) { try { wrapped = (Comparator<E>)schemaManager.lookupComparatorRegistry( matchingRuleOid ); } catch ( LdapException ne ) { // Not found : get the default comparator wrapped = (Comparator<E>)new ComparableComparator<Comparable<E>>( matchingRuleOid ); } } ((LdapComparator<E>)wrapped).setSchemaManager( schemaManager ); super.setSchemaManager( schemaManager ); } }