Set<String> remainingObjectClassesSet = new HashSet<String>( Arrays.asList( ocValues ) );
remainingObjectClassesSet.removeAll( selectedObjectClasses );
Set<AttributeTypeDescription> remainingAttributeSet = new HashSet<AttributeTypeDescription>();
for ( String oc : remainingObjectClassesSet )
{
ObjectClassDescription ocd = entry.getBrowserConnection().getSchema().getObjectClassDescription( oc );
if ( ocd != null )
{
String[] mustAttrs = ocd.getMustAttributeTypeDescriptionNamesTransitive();
for ( String mustAttr : mustAttrs )
{
AttributeTypeDescription atd = entry.getBrowserConnection().getSchema().getAttributeTypeDescription( mustAttr );
remainingAttributeSet.add( atd );
}
String[] mayAttrs = ocd.getMayAttributeTypeDescriptionNamesTransitive();
for ( String mayAttr : mayAttrs )
{
AttributeTypeDescription atd = entry.getBrowserConnection().getSchema().getAttributeTypeDescription( mayAttr );
remainingAttributeSet.add( atd );
}