private bool InheritFromSuperField(MetaMetadataRepository repository, InheritanceHandler inheritanceHandler)
{
bool inhertedIsInheriting = false;
MetaMetadataCompositeField inheritedField = (MetaMetadataCompositeField)SuperField;
if (inheritedField != null)
{
inheritedField.Repository = repository;
if (inheritedField.InheritInProcess)
{
inhertedIsInheriting = true;
// if inheriting from the root mmd, we need to clone and keep the environment right now.
InheritanceHandler inheritanceHandlerToUse = inheritanceHandler.clone();
inheritanceHandler.Pop(this);
//inheritedField.InheritFinished += (sender, e) => InheritFrom(repository, inheritedField);
this.AddInheritanceFinishHandler(inheritedField, InheritFieldFinished, inheritanceHandlerToUse);
}
else
{
inheritedField.InheritMetaMetadata(inheritanceHandler);
InheritFromCompositeField(inheritedField, repository, inheritanceHandler);
}
}
return inhertedIsInheriting;
}