public LDAPHierarchicObjectREF add(Object v) throws DmcValueException {
synchronized(this){
LDAPHierarchicObjectREF newval = typeCheck(v);
if (value == null)
initValue();
FullyQualifiedName key = (FullyQualifiedName)((DmcMappedAttributeIF)newval).getKey();
LDAPHierarchicObjectREF oldval = value.put(key,newval);
if (oldval != null){
// We had a value with this key, ensure that the value actually changed
if (oldval.valuesAreEqual(newval))