AttributeHierarchy ah = entry.getAttributeWithSubtypes( ras[r] );
if ( ah != null )
{
for ( Iterator it = ah.iterator(); it.hasNext(); )
{
IAttribute attribute = ( IAttribute ) it.next();
try
{
entry.deleteAttribute( attribute );
}
catch ( ModelModificationException e )
{
}
}
}
}
}
else
{
// clear all
IAttribute[] oldAttributes = entry.getAttributes();
for ( int i = 0; oldAttributes != null && i < oldAttributes.length; i++ )
{
try
{
entry.deleteAttribute( oldAttributes[i] );
}
catch ( ModelModificationException e )
{
}
}
}
// additional clear old attributes if the record contains the
// attribute
for ( int i = 0; i < lines.length; i++ )
{
String attributeDesc = lines[i].getUnfoldedAttributeDescription();
IAttribute oldAttribute = entry.getAttribute( attributeDesc );
if ( oldAttribute != null )
{
try
{
entry.deleteAttribute( oldAttribute );
}
catch ( ModelModificationException mme )
{
}
}
}
// set new attributes and values
for ( int i = 0; i < lines.length; i++ )
{
IAttribute attribute = null;
String attributeName = lines[i].getUnfoldedAttributeDescription();
// attributeName = attributeName.replaceAll(";binary", "");
if ( entry.getAttribute( attributeName ) == null )
{
attribute = new Attribute( entry, attributeName );
entry.addAttribute( attribute );
}
else
{
attribute = entry.getAttribute( attributeName );
}
attribute.addValue( new Value( attribute, lines[i].getValueAsObject() ) );
}
}
}