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 2011/04/06 22:02:32 UTC
svn commit: r1089607 - in /directory:
apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/
apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/
apacheds/trunk/core/src/test/java/org/apache/directory/ser...
Author: elecharny
Date: Wed Apr 6 20:02:31 2011
New Revision: 1089607
URL: http://svn.apache.org/viewvc?rev=1089607&view=rev
Log:
o Modified the hasObjectClass method to deal with more than one objectclass
o Added a isSchemaAware method in Entry
o Removed unused constructors
o factorized some constructors
o Fixed tests
Modified:
directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/ClonedServerEntry.java
directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java
directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
directory/shared/trunk/integ/src/test/java/org/apache/directory/shared/ldap/entry/SchemaAwareEntryTest.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/DefaultEntry.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/Entry.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/ImmutableEntry.java
directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifAttributesReader.java
Modified: directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/ClonedServerEntry.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/ClonedServerEntry.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/ClonedServerEntry.java (original)
+++ directory/apacheds/trunk/core-api/src/main/java/org/apache/directory/server/core/entry/ClonedServerEntry.java Wed Apr 6 20:02:31 2011
@@ -163,9 +163,9 @@ public class ClonedServerEntry implement
}
- public boolean hasObjectClass( Attribute objectClass )
+ public boolean hasObjectClass( Attribute... objectClasses )
{
- return clonedEntry.hasObjectClass( objectClass );
+ return clonedEntry.hasObjectClass( objectClasses );
}
@@ -307,11 +307,20 @@ public class ClonedServerEntry implement
}
- public boolean hasObjectClass( String objectClass )
+ public boolean hasObjectClass( String... objectClasses )
{
- return clonedEntry.hasObjectClass( objectClass );
+ return clonedEntry.hasObjectClass( objectClasses );
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isSchemaAware()
+ {
+ return clonedEntry.isSchemaAware();
+ }
+
public Iterator<Attribute> iterator()
{
Modified: directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java (original)
+++ directory/apacheds/trunk/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java Wed Apr 6 20:02:31 2011
@@ -223,7 +223,7 @@ public class SchemaAwareEntryTest
/**
* Test for method DefaultEntry( registries, Dn, AttributeType, upId )
- */
+ *
@Test
public void testDefaultClientEntryRegistriesDNUpIdArray() throws Exception
{
Modified: directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java (original)
+++ directory/apacheds/trunk/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java Wed Apr 6 20:02:31 2011
@@ -31,8 +31,6 @@ import java.util.Set;
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
-import com.mycila.junit.concurrent.Concurrency;
-import com.mycila.junit.concurrent.ConcurrentJunitRunner;
import org.apache.directory.server.core.DefaultDnFactory;
import org.apache.directory.server.core.DnFactory;
import org.apache.directory.server.core.normalization.FilterNormalizingVisitor;
@@ -55,6 +53,9 @@ import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
+import com.mycila.junit.concurrent.Concurrency;
+import com.mycila.junit.concurrent.ConcurrentJunitRunner;
+
/**
* Unit test cases for the SubtreeEvaluator.
@@ -130,7 +131,7 @@ public class SubtreeEvaluatorTest
SubtreeSpecification ss = modifier.getSubtreeSpecification();
Dn apDn = dnFactory.create( "ou=system" );
Dn entryDn = dnFactory.create( "ou=users,ou=system" );
- Entry entry = new DefaultEntry( schemaManager, entryDn, "objectClass" );
+ Entry entry = new DefaultEntry( schemaManager, entryDn );
assertTrue( evaluator.evaluate( ss, apDn, entryDn, entry ) );
@@ -150,7 +151,7 @@ public class SubtreeEvaluatorTest
SubtreeSpecification ss = modifier.getSubtreeSpecification();
Dn apDn = dnFactory.create( "ou=system" );
Dn entryDn = dnFactory.create( "ou=users,ou=system" );
- Entry entry = new DefaultEntry( schemaManager, entryDn, "objectClass" );
+ Entry entry = new DefaultEntry( schemaManager, entryDn );
assertTrue( evaluator.evaluate( ss, apDn, entryDn, entry ) );
@@ -172,7 +173,7 @@ public class SubtreeEvaluatorTest
SubtreeSpecification ss = modifier.getSubtreeSpecification();
Dn apDn = dnFactory.create( "ou=system" );
Dn entryDn = dnFactory.create( "ou=users,ou=system" );
- Entry entry = new DefaultEntry( schemaManager, entryDn, "objectClass" );
+ Entry entry = new DefaultEntry( schemaManager, entryDn );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
@@ -207,7 +208,7 @@ public class SubtreeEvaluatorTest
SubtreeSpecification ss = modifier.getSubtreeSpecification();
Dn apDn = dnFactory.create( "ou=system" );
Dn entryDn = dnFactory.create( "ou=users,ou=system" );
- Entry entry = new DefaultEntry( schemaManager, entryDn, "objectClass" );
+ Entry entry = new DefaultEntry( schemaManager, entryDn );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
@@ -242,7 +243,7 @@ public class SubtreeEvaluatorTest
SubtreeSpecification ss = modifier.getSubtreeSpecification();
Dn apDn = dnFactory.create( "ou=system" );
Dn entryDn = dnFactory.create( "ou=users,ou=system" );
- Entry entry = new DefaultEntry( schemaManager, entryDn, "objectClass" );
+ Entry entry = new DefaultEntry( schemaManager, entryDn );
assertFalse( evaluator.evaluate( ss, apDn, entryDn, entry ) );
Modified: directory/shared/trunk/integ/src/test/java/org/apache/directory/shared/ldap/entry/SchemaAwareEntryTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/integ/src/test/java/org/apache/directory/shared/ldap/entry/SchemaAwareEntryTest.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/shared/trunk/integ/src/test/java/org/apache/directory/shared/ldap/entry/SchemaAwareEntryTest.java (original)
+++ directory/shared/trunk/integ/src/test/java/org/apache/directory/shared/ldap/entry/SchemaAwareEntryTest.java Wed Apr 6 20:02:31 2011
@@ -235,81 +235,6 @@ public class SchemaAwareEntryTest
/**
- * Test method for DefaultEntry( Dn, String... )
- */
- @Test
- public void testDefaultClientEntryLdapDNStringArray()
- {
- Entry entry = new DefaultEntry( EXAMPLE_DN, "ObjectClass", "cn", "sn" );
-
- assertNotNull( entry );
- assertNotNull( entry.getDn() );
- assertEquals( EXAMPLE_DN, entry.getDn() );
- assertEquals( 3, entry.size() );
- assertTrue( entry.containsAttribute( "OBJECTCLASS" ) );
- assertTrue( entry.containsAttribute( "CN" ) );
- assertTrue( entry.containsAttribute( "SN" ) );
-
- try
- {
- new DefaultEntry( EXAMPLE_DN, "ObjectClass", (String)null, "sn" );
- fail();
- }
- catch( IllegalArgumentException iae )
- {
- assertTrue( true );
- }
-
- try
- {
- new DefaultEntry( EXAMPLE_DN, "ObjectClass", " ", "sn" );
- fail();
- }
- catch( IllegalArgumentException iae )
- {
- assertTrue( true );
- }
- }
-
-
- /**
- * Test method for DefaultEntry( Dn, EntryAttribute... )
- */
- @Test
- public void testDefaultClientEntryLdapDNEntryAttributeArray()
- {
- Attribute attrOC = new DefaultAttribute( "objectClass", "top", "person" );
- Attribute attrCN = new DefaultAttribute( "cn", "test1", "test2" );
- Attribute attrPWD = new DefaultAttribute( "userPassword", BYTES1, BYTES2 );
-
- Entry entry = new DefaultEntry( EXAMPLE_DN, attrOC, attrCN, attrPWD );
-
- assertNotNull( entry );
- assertNotNull( entry.getDn() );
- assertEquals( EXAMPLE_DN, entry.getDn() );
- assertEquals( 3, entry.size() );
- assertTrue( entry.containsAttribute( "OBJECTCLASS" ) );
- assertTrue( entry.containsAttribute( "CN" ) );
- assertTrue( entry.containsAttribute( "userPassword" ) );
-
- entry = new DefaultEntry( EXAMPLE_DN, attrOC, attrCN, attrOC );
- assertNotNull( entry );
- assertNotNull( entry.getDn() );
- assertEquals( EXAMPLE_DN, entry.getDn() );
- assertEquals( 2, entry.size() );
- assertTrue( entry.containsAttribute( "OBJECTCLASS" ) );
- assertTrue( entry.containsAttribute( "CN" ) );
-
- entry = new DefaultEntry( EXAMPLE_DN, attrOC, (Attribute)null );
- assertNotNull( entry );
- assertNotNull( entry.getDn() );
- assertEquals( EXAMPLE_DN, entry.getDn() );
- assertEquals( 1, entry.size() );
- assertTrue( entry.containsAttribute( "OBJECTCLASS" ) );
- }
-
-
- /**
* Test method for add( EntryAttribute... )
*/
@Test
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/DefaultEntry.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/DefaultEntry.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/DefaultEntry.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/DefaultEntry.java Wed Apr 6 20:02:31 2011
@@ -35,6 +35,7 @@ import org.apache.directory.shared.i18n.
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.exception.LdapException;
import org.apache.directory.shared.ldap.model.exception.LdapInvalidAttributeValueException;
+import org.apache.directory.shared.ldap.model.ldif.LdapLdifException;
import org.apache.directory.shared.ldap.model.ldif.LdifAttributesReader;
import org.apache.directory.shared.ldap.model.message.ResultCodeEnum;
import org.apache.directory.shared.ldap.model.name.Dn;
@@ -91,8 +92,7 @@ public final class DefaultEntry implemen
*/
public DefaultEntry()
{
- schemaManager = null;
- dn = Dn.EMPTY_DN;
+ this( (SchemaManager)null );
}
@@ -112,7 +112,10 @@ public final class DefaultEntry implemen
dn = Dn.EMPTY_DN;
// Initialize the ObjectClass object
- initObjectClassAT();
+ if ( schemaManager != null )
+ {
+ initObjectClassAT();
+ }
}
@@ -165,15 +168,9 @@ public final class DefaultEntry implemen
* @param dn The Dn for this serverEntry. Can be null.
* @param upIds The list of attributes to create.
*/
- public DefaultEntry( Dn dn, String... upIds )
+ public DefaultEntry( String dn, Object... elements ) throws LdapException
{
- this.dn = dn;
-
- for ( String upId : upIds )
- {
- // Add a new AttributeType without value
- set( upId );
- }
+ this( null, dn, elements );
}
@@ -184,9 +181,9 @@ public final class DefaultEntry implemen
* @param dn The Dn for this serverEntry. Can be null.
* @param upIds The list of attributes to create.
*/
- public DefaultEntry( String dn, Object... elements ) throws LdapException
+ public DefaultEntry( SchemaManager schemaManager, String dn, Object... elements ) throws LdapException
{
- this( null, dn, elements );
+ this( schemaManager, new Dn( schemaManager, dn ), elements );
}
@@ -197,70 +194,19 @@ public final class DefaultEntry implemen
* @param dn The Dn for this serverEntry. Can be null.
* @param upIds The list of attributes to create.
*/
- public DefaultEntry( SchemaManager schemaManager, String dn, Object... elements ) throws LdapException
+ public DefaultEntry( SchemaManager schemaManager, Dn dn, Object... elements ) throws LdapException
{
- StringBuilder sb = new StringBuilder();
- int pos = 0;
- boolean valueExpected = false;
-
- for ( Object element : elements )
- {
- if ( !valueExpected )
- {
- if ( !( element instanceof String ) )
- {
- throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
- I18n.ERR_12085, ( pos + 1 ) ) );
- }
-
- String attribute = ( String ) element;
- sb.append( attribute );
-
- if ( attribute.indexOf( ':' ) != -1 )
- {
- sb.append( '\n' );
- }
- else
- {
- valueExpected = true;
- }
- }
- else
- {
- if ( element instanceof String )
- {
- sb.append( ": " ).append( ( String ) element ).append( '\n' );
- }
- else if ( element instanceof byte[] )
- {
- sb.append( ":: " );
- sb.append( new String( Base64.encode( ( byte[] ) element ) ) );
- sb.append( '\n' );
- }
- else
- {
- throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
- I18n.ERR_12086, ( pos + 1 ) ) );
- }
-
- valueExpected = false;
- }
- }
-
- if ( valueExpected )
- {
- throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n
- .err( I18n.ERR_12087 ) );
- }
-
- LdifAttributesReader reader = new LdifAttributesReader();
- DefaultEntry entry = (DefaultEntry)reader.parseEntry( schemaManager, sb.toString() );
- this.dn = new Dn( schemaManager, dn );
+ DefaultEntry entry = (DefaultEntry)createEntry( schemaManager, elements );
+
+ this.dn = dn;
this.attributes = entry.attributes;
this.schemaManager = schemaManager;
- // Initialize the ObjectClass object
- initObjectClassAT();
+ if ( schemaManager != null )
+ {
+ this.dn.apply( schemaManager );
+ initObjectClassAT();
+ }
}
@@ -326,134 +272,71 @@ public final class DefaultEntry implemen
}
- /**
- * Creates a new instance of DefaultEntry, with a
- * Dn, a list of ID and schema aware.
- * <p>
- * No attributes will be created except the ObjectClass attribute,
- * which will contains "top".
- * <p>
- * If any of the AttributeType does not exist, they are simply discarded.
- *
- * @param schemaManager The reference to the schemaManager
- * @param dn The Dn for this serverEntry. Can be null.
- * @param upIds The list of attributes to create.
- */
- public DefaultEntry( SchemaManager schemaManager, Dn dn, String... upIds )
- {
- this.schemaManager = schemaManager;
-
- if ( dn == null )
- {
- this.dn = Dn.EMPTY_DN;
- }
- else
- {
- this.dn = dn;
- normalizeDN( this.dn );
- }
-
- initObjectClassAT();
-
- set( upIds );
- }
-
-
- /**
- * <p>
- * Creates a new instance of DefaultEntry, with a
- * Dn and a list of EntryAttributes.
- * </p>
- *
- * @param dn The Dn for this serverEntry. Can be null
- * @param attributes The list of attributes to create
- */
- public DefaultEntry( Dn dn, Attribute... attributes )
+ //-------------------------------------------------------------------------
+ // Helper methods
+ //-------------------------------------------------------------------------
+ private Entry createEntry( SchemaManager schemaManager, Object... elements ) throws LdapInvalidAttributeValueException, LdapLdifException
{
- this.dn = dn;
+ StringBuilder sb = new StringBuilder();
+ int pos = 0;
+ boolean valueExpected = false;
- for ( Attribute attribute : attributes )
+ for ( Object element : elements )
{
- if ( attribute == null )
+ if ( !valueExpected )
{
- continue;
- }
-
- // Store a new ClientAttribute
- this.attributes.put( attribute.getId(), attribute );
- }
- }
-
+ if ( !( element instanceof String ) )
+ {
+ throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
+ I18n.ERR_12085, ( pos + 1 ) ) );
+ }
- /**
- * Creates a new instance of DefaultEntry, with a
- * Dn, a list of ServerAttributes and schema aware.
- * <p>
- * No attributes will be created except the ObjectClass attribute,
- * which will contains "top".
- * <p>
- * If any of the AttributeType does not exist, they are simply discarded.
- *
- * @param schemaManager The reference to the schemaManager
- * @param dn The Dn for this serverEntry. Can be null
- * @param attributes The list of attributes to create
- */
- public DefaultEntry( SchemaManager schemaManager, Dn dn, Attribute... attributes )
- {
- this.schemaManager = schemaManager;
-
- if ( dn == null )
- {
- this.dn = Dn.EMPTY_DN;
- }
- else
- {
- this.dn = dn;
- normalizeDN( this.dn );
- }
+ String attribute = ( String ) element;
+ sb.append( attribute );
- if ( schemaManager == null )
- {
- if ( attributes != null )
- {
- for ( Attribute attribute : attributes )
+ if ( attribute.indexOf( ':' ) != -1 )
{
- if ( attribute == null )
- {
- continue;
- }
-
- // Store a new ClientAttribute
- this.attributes.put( attribute.getId(), attribute );
+ sb.append( '\n' );
+ }
+ else
+ {
+ valueExpected = true;
}
}
- }
- else
- {
- initObjectClassAT();
-
- if ( attributes != null )
+ else
{
- for ( Attribute attribute : attributes )
+ if ( element instanceof String )
{
- // Store a new ServerAttribute
- try
- {
- put( attribute );
- }
- catch ( LdapException ne )
- {
- LOG.warn( "The ServerAttribute '{}' does not exist. It has been discarded", attribute );
- }
+ sb.append( ": " ).append( ( String ) element ).append( '\n' );
+ }
+ else if ( element instanceof byte[] )
+ {
+ sb.append( ":: " );
+ sb.append( new String( Base64.encode( ( byte[] ) element ) ) );
+ sb.append( '\n' );
+ }
+ else
+ {
+ throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n.err(
+ I18n.ERR_12086, ( pos + 1 ) ) );
}
+
+ valueExpected = false;
}
}
- }
+ if ( valueExpected )
+ {
+ throw new LdapInvalidAttributeValueException( ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, I18n
+ .err( I18n.ERR_12087 ) );
+ }
- //-------------------------------------------------------------------------
- // Helper methods
- //-------------------------------------------------------------------------
+ LdifAttributesReader reader = new LdifAttributesReader();
+ Entry entry = reader.parseEntry( schemaManager, sb.toString() );
+
+ return entry;
+ }
+
/**
* Get the trimmed and lower cased entry ID
*/
@@ -2597,60 +2480,83 @@ public final class DefaultEntry implemen
/**
* {@inheritDoc}
*/
- public boolean hasObjectClass( String objectClass )
+ public boolean hasObjectClass( String... objectClasses )
{
- if ( Strings.isEmpty( objectClass ) )
+ if ( ( objectClasses == null ) || ( objectClasses.length == 0 ) || ( objectClasses[0] == null ) )
{
return false;
}
- if ( schemaManager != null )
+ for ( String objectClass : objectClasses )
{
- return contains( objectClassAttributeType, objectClass );
- }
- else
- {
- return contains( "objectclass", objectClass );
+ if ( schemaManager != null )
+ {
+ if ( !contains( objectClassAttributeType, objectClass ) )
+ {
+ return false;
+ }
+ }
+ else
+ {
+ if ( !contains( "objectclass", objectClass ) )
+ {
+ return false;
+ }
+ }
}
+
+ return true;
}
/**
* {@inheritDoc}
*/
- public boolean hasObjectClass( Attribute objectClass )
+ public boolean hasObjectClass( Attribute... objectClasses )
{
- if ( objectClass == null )
- {
- return false;
- }
-
- // We have to check that we are checking the ObjectClass attributeType
- if ( !objectClass.getAttributeType().equals( objectClassAttributeType ) )
- {
- return false;
- }
-
- Attribute attribute = attributes.get( objectClassAttributeType.getOid() );
-
- if ( attribute == null )
+ if ( ( objectClasses == null ) || ( objectClasses.length == 0 ) || ( objectClasses[0] == null ) )
{
- // The entry does not have an ObjectClass attribute
return false;
}
-
- for ( Value<?> value : objectClass )
+
+ for ( Attribute objectClass:objectClasses )
{
- // Loop on all the values, and check if they are present
- if ( !attribute.contains( value.getString() ) )
+ // We have to check that we are checking the ObjectClass attributeType
+ if ( !objectClass.getAttributeType().equals( objectClassAttributeType ) )
+ {
+ return false;
+ }
+
+ Attribute attribute = attributes.get( objectClassAttributeType.getOid() );
+
+ if ( attribute == null )
{
+ // The entry does not have an ObjectClass attribute
return false;
}
+
+ for ( Value<?> value : objectClass )
+ {
+ // Loop on all the values, and check if they are present
+ if ( !attribute.contains( value.getString() ) )
+ {
+ return false;
+ }
+ }
}
return true;
}
+
+ /**
+ * {@inheritDoc}
+ */
+ public boolean isSchemaAware()
+ {
+ return schemaManager != null;
+ }
+
/**
* @see Object#equals(Object)
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/Entry.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/Entry.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/Entry.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/Entry.java Wed Apr 6 20:02:31 2011
@@ -66,23 +66,23 @@ public interface Entry extends Cloneable
/**
- * Tells if an entry as a specific ObjectClass value
+ * Tells if an entry as some specific ObjectClasses values
*
- * @param objectClass The ObjectClassw we want to check
- * @return <code>true</code> if the ObjectClass value is present
+ * @param objectClasses The ObjectClasses we want to check
+ * @return <code>true</code> if all the ObjectClasses value are present
* in the ObjectClass attribute
*/
- boolean hasObjectClass( String objectClass );
+ boolean hasObjectClass( String... objectClasses );
/**
- * Tells if an entry has a specific ObjectClass Attribute
+ * Tells if an entry has some specific ObjectClasses Attributes
*
- * @param objectClass The ObjectClass we want to check
- * @return <code>true</code> if the ObjectClass value is present
+ * @param objectClasses The ObjectClasses we want to check
+ * @return <code>true</code> if the ObjectClasses Attribute are present
* in the ObjectClass attribute
*/
- boolean hasObjectClass( Attribute objectClass );
+ boolean hasObjectClass( Attribute... objectClasses );
/**
@@ -843,4 +843,11 @@ public interface Entry extends Cloneable
* @return the number of attributes
*/
int size();
+
+
+ /**
+ * Tells if the Entry is schema aware
+ * @return true if the Entry is schema aware
+ */
+ boolean isSchemaAware();
}
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/ImmutableEntry.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/ImmutableEntry.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/ImmutableEntry.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/entry/ImmutableEntry.java Wed Apr 6 20:02:31 2011
@@ -703,22 +703,31 @@ public class ImmutableEntry implements E
/**
* {@inheritDoc}
*/
- public boolean hasObjectClass( String objectClass )
+ public boolean hasObjectClass( String... objectClasses )
{
- return entry.hasObjectClass( objectClass );
+ return entry.hasObjectClass( objectClasses );
}
/**
* {@inheritDoc}
*/
- public boolean hasObjectClass( Attribute objectClass )
+ public boolean hasObjectClass( Attribute... objectClasses )
{
- return entry.hasObjectClass( objectClass );
+ return entry.hasObjectClass( objectClasses );
}
/**
+ * {@inheritDoc}
+ */
+ public boolean isSchemaAware()
+ {
+ return entry.isSchemaAware();
+ }
+
+
+ /**
* @see Object#equals(Object)
*/
public boolean equals( Object o )
Modified: directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifAttributesReader.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifAttributesReader.java?rev=1089607&r1=1089606&r2=1089607&view=diff
==============================================================================
--- directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifAttributesReader.java (original)
+++ directory/shared/trunk/ldap/model/src/main/java/org/apache/directory/shared/ldap/model/ldif/LdifAttributesReader.java Wed Apr 6 20:02:31 2011
@@ -325,16 +325,7 @@ public class LdifAttributesReader extend
return null;
}
- Entry entry = null;
-
- if ( schemaManager != null )
- {
- entry = new DefaultEntry( schemaManager );
- }
- else
- {
- entry = new DefaultEntry();
- }
+ Entry entry = new DefaultEntry( schemaManager );
// Now, let's iterate through the other lines
for ( String line : lines )
@@ -583,7 +574,7 @@ public class LdifAttributesReader extend
if ( Strings.isEmpty(ldif) )
{
- return new DefaultEntry();
+ return new DefaultEntry( schemaManager );
}
StringReader strIn = new StringReader( ldif );