public static List<BaseUsage> GetCompoundChildrens(BaseUsage usage)
{
List<BaseUsage> temp = new List<BaseUsage>();
if (usage is MetadataPackageUsage)
{
MetadataPackageUsage mpu = (MetadataPackageUsage)usage;
foreach (BaseUsage childUsage in mpu.MetadataPackage.MetadataAttributeUsages)
{
if(IsCompound(childUsage))
temp.Add(childUsage);
}
}
if (usage is MetadataAttributeUsage)
{
MetadataAttributeUsage mau = (MetadataAttributeUsage)usage;
if (mau.MetadataAttribute.Self is MetadataCompoundAttribute)
{
foreach (BaseUsage childUsage in ((MetadataCompoundAttribute)mau.MetadataAttribute.Self).MetadataNestedAttributeUsages)
{
if (IsCompound(childUsage))
temp.Add(childUsage);
}
}
}
if (usage is MetadataNestedAttributeUsage)
{
MetadataNestedAttributeUsage mnau = (MetadataNestedAttributeUsage)usage;
if (mnau.Member.Self is MetadataCompoundAttribute)
{
foreach (BaseUsage childUsage in ((MetadataCompoundAttribute)mnau.Member.Self).MetadataNestedAttributeUsages)
{
if (IsCompound(childUsage))
temp.Add(childUsage);
}
}
}
return temp;
}