// validate non-modifiable attributes
AttributeHierarchy[] attributeHierarchies = getSelectedAttributeHierarchies();
if ( attributeHierarchies.length == 1 )
{
AttributeHierarchy attributeHierarchy = attributeHierarchies[0];
StringBuffer message = new StringBuffer();
if ( attributeHierarchy.size() == 1 && attributeHierarchy.getAttribute().getValueSize() == 0 )
{
// validate if value is allowed
IEntry entry = attributeHierarchy.getAttribute().getEntry();
Collection<AttributeTypeDescription> allAtds = SchemaUtils.getAllAttributeTypeDescriptions( entry );
AttributeTypeDescription atd = attributeHierarchy.getAttribute().getAttributeTypeDescription();
if ( !allAtds.contains( atd ) )
{
message.append( NLS.bind( Messages.getString( "OpenBestEditorAction.AttributeNotInSubSchema" ), //$NON-NLS-1$
attributeHierarchy.getAttribute().getDescription() ) );
message.append( BrowserCoreConstants.LINE_SEPARATOR );
message.append( BrowserCoreConstants.LINE_SEPARATOR );
}
}
if ( attributeHierarchy.size() == 1
&& attributeHierarchy.getAttribute().getValueSize() == 1
&& attributeHierarchy.getAttributeDescription().equalsIgnoreCase(
attributeHierarchy.getAttribute().getValues()[0].getAttribute().getDescription() )
&& !attributeHierarchy.getAttribute().getValues()[0].isRdnPart() )
{
// validate non-modifiable attributes
IValue value = attributeHierarchy.getAttribute().getValues()[0];
if ( !value.isEmpty() && !SchemaUtils.isModifiable( value.getAttribute().getAttributeTypeDescription() ) )
{
message
.append( NLS
.bind(