public static List <ClassTemplateSpecialization> GetSpecializationsToGenerate( this Class classTemplate) { if (classTemplate.HasDependentValueFieldInLayout()) { return(classTemplate.Specializations); } var specializations = new List <ClassTemplateSpecialization>(); var specialization = classTemplate.Specializations.FirstOrDefault(s => !s.Ignore); if (specialization == null) { specializations.Add(classTemplate.Specializations[0]); } else { specializations.Add(specialization); } return(specializations); }
public static IEnumerable <Class> GetSpecializedClassesToGenerate( this Class dependentClass) { IEnumerable <Class> specializedClasses = GetSpecializedClassesOf(dependentClass); if (!specializedClasses.Any() || dependentClass.HasDependentValueFieldInLayout()) { return(specializedClasses); } var specializations = new List <Class>(); var specialization = specializedClasses.FirstOrDefault(s => s.IsGenerated); if (specialization == null) { specializations.Add(specializedClasses.First()); } else { specializations.Add(specialization); } return(specializations); }