You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2005/10/30 20:55:33 UTC
svn commit: r329612 -
/directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java
Author: elecharny
Date: Sun Oct 30 11:55:28 2005
New Revision: 329612
URL: http://svn.apache.org/viewcvs?rev=329612&view=rev
Log:
Added an initialization of the binary attributes HashSet.
Modified:
directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java
Modified: directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java
URL: http://svn.apache.org/viewcvs/directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java?rev=329612&r1=329611&r2=329612&view=diff
==============================================================================
--- directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java (original)
+++ directory/shared/ldap/branches/shared-ldap-utf8/apache-provider/src/java/org/apache/ldap/common/berlib/asn1/SnickersDecoder.java Sun Oct 30 11:55:28 2005
@@ -22,6 +22,7 @@
import org.apache.asn1.codec.stateful.DecoderCallback;
import org.apache.asn1.codec.stateful.DecoderMonitor;
import org.apache.asn1.codec.stateful.StatefulDecoder;
+import org.apache.asn1new.util.StringUtils;
import org.apache.ldap.common.berlib.asn1.decoder.LdapDigesterFactory;
import org.apache.ldap.common.message.Message;
import org.apache.ldap.common.message.spi.Provider;
@@ -30,6 +31,8 @@
import java.io.InputStream;
import java.nio.ByteBuffer;
+import java.util.HashSet;
+import java.util.Hashtable;
/**
@@ -41,7 +44,26 @@
{
private final Provider provider;
private final BERDigester digester;
+ private HashSet binaries;
+ private static final String BINARY_KEY = "java.naming.ldap.attributes.binary";
+ private void initBinaries( Hashtable env )
+ {
+ // construct the set for fast lookups while filtering
+ String binaryIds = (String)env.get( BINARY_KEY );
+
+ binaries = new HashSet();
+
+ if ( StringUtils.isEmpty( binaryIds ) == false )
+ {
+ String[] binaryArray = binaryIds.split( "/" );
+
+ for ( int i = 0; i < binaryArray.length; i++ )
+ {
+ binaries.add( StringUtils.lowerCase( StringUtils.trim( binaryArray[i] ) ) );
+ }
+ }
+ }
// ------------------------------------------------------------------------
// Constructors
@@ -53,11 +75,12 @@
*
* @param provider the owning provider.
*/
- public SnickersDecoder( Provider provider )
+ public SnickersDecoder( Provider provider, Hashtable env )
{
this.provider = provider;
LdapDigesterFactory factory = LdapDigesterFactory.getSingleton();
- digester = factory.create();
+ initBinaries( env );
+ digester = factory.create( binaries );
}
@@ -125,7 +148,7 @@
LdapDigesterFactory factory = LdapDigesterFactory.getSingleton();
// @todo we should probably pool digesters for performance
- BERDigester digesterTmp = factory.create();
+ BERDigester digesterTmp = factory.create( binaries );
DigesterCallback dcb = new DigesterCallback();
digesterTmp.setCallback( dcb );