A little note, this would have been sooo much easier if Ldif had a
getAttributes() method..I could
simply then create a new Modification list with ServerAttributes derived
from the ClientAttributes..
Y.
Yiannis Mavroukakis wrote:
Hello everyone :-)
I've got a problem trying to use LdifEntry with
ModifyOperationContext. If you remember from
previous emails, I'm using LdifEntry because it can be serialized. I'm
stuffing my Modification
objects in the LdifEntry object like so
for( AttributeType attributeType : list )
{
EntryAttribute entryAttribute = ( (ServerAttribute) entry
.get( attributeType ) ).toClientAttribute( );
ldiff.addAttribute( entryAttribute );
if( changeType.equals( ChangeType.Modify ) )
{
ClientModification mod = new ClientModification(
ModificationOperation.REPLACE_ATTRIBUTE ,
entryAttribute );
ldiff.addModificationItem( mod );
}
}
This serializes fine, however ModifyOperationContext.modify() gives me a
java.lang.ClassCastException:
org.apache.directory.shared.ldap.entry.client.DefaultClientAttribute
cannot be cast to org.apache.directory.server.core.entry.ServerAttribute
when I pass the LdifEntry object modification list to it because it
expects ServerAttributes and not ClientAttributes and as far as I can
remember, ServerAttributes are not serializable (?). Is there any way
I can get around this requirement?
Thanks guys,
Yiannis