protected MetaMetadata GenerateMetaMetadata(String previousName, MetaMetadata inheritedMmd)
{
String generatedName = getGeneratedMmdName2(previousName);
// generate the mmd and set attributes
MetaMetadata generatedMmd = new MetaMetadata
{
Name = generatedName,
PackageName = PackageName,
Type = null,
TypeMmd = inheritedMmd,
ExtendsAttribute = inheritedMmd.Name,
Repository = Repository,
Visibility = Visibility.PACKAGE,
Scope =
new MmdScope(this.Scope,
inheritedMmd.Scope)
};
if (SchemaOrgItemtype != null)
generatedMmd.SchemaOrgItemtype = SchemaOrgItemtype;
generatedMmd.SetNewMetadataClass(true);
// move nested fields (they will be cloned later)
if (kids != null && kids.Count > 0)
{
foreach (String kidKey in this.kids.Keys)
{
MetaMetadataField kid;
kids.TryGetValue(kidKey, out kid);
generatedMmd.Kids.Put(kidKey, kid);
kid.Parent = generatedMmd;
}
kids.Clear();
}
MakeThisFieldUseMmd(previousName, generatedMmd);
return generatedMmd;
}