in code/tools/TemplateValidator/TemplateJsonVerifier.cs [172:301]
private static void VerifyTagUsage(ValidationTemplateInfo template, List<string> results)
{
foreach (var tag in template.TemplateTags)
{
switch (tag.Key)
{
case "language":
VerifyLanguageTagValue(tag, results);
break;
case "type":
VerifyTypeTagValue(tag, results);
break;
case "wts.type":
VerifyWtsTypeTagValue(tag, results);
VerifyWtsTypeFeatureMultipleInstancesRule(tag, template, results);
break;
case "wts.order":
VerifyWtsOrderTagValue(results);
break;
case "wts.displayOrder":
VerifyWtsDisplayOrderTagValue(tag, results);
break;
case "wts.compositionOrder":
VerifyWtsCompositionOrderTagValue(tag, results);
break;
case "wts.frontendframework":
case "wts.backendframework":
VerifyWtsFrameworkTagValue(tag, results);
break;
case "wts.projecttype":
VerifyWtsProjecttypeTagValue(tag, results);
break;
case "wts.platform":
VerifyPlatformTagValue(tag, results);
break;
case "wts.version":
VerifyWtsVersionTagValue(tag, results);
break;
case "wts.genGroup":
VerifyWtsGengroupTagValue(tag, results);
break;
case "wts.rightClickEnabled":
VerifyWtsRightclickenabledTagValue(tag, results);
break;
case "wts.compositionFilter":
VerifyWtsCompositionFilterTagValue(tag, results);
VerifyWtsCompositionFilterLogic(template, tag, results);
break;
case "wts.licenses":
VerifyWtsLicensesTagValue(tag, results);
break;
case "wts.group":
VerifyWtsGroupTagValue(tag, results);
break;
case "wts.multipleInstance":
VerifyWtsMultipleinstanceTagValue(tag, results);
break;
case "wts.dependencies":
// This value is checked with the TemplateFolderVerifier
break;
case "wts.requirements":
// This value is checked with the TemplateFolderVerifier
break;
case "wts.exclusions":
// This value is checked with the TemplateFolderVerifier
case "wts.defaultInstance":
VerifyWtsDefaultinstanceTagValue(tag, results);
break;
case "wts.isHidden":
VerifyWtsIshiddenTagValue(tag, results);
break;
case "wts.isGroupExclusiveSelection":
VerifyWtsWtsIsGroupExclusiveSelectionTagValue(tag, results);
break;
case "wts.telemName":
VerifyWtsTelemNameTagValue(tag, results);
break;
case "wts.outputToParent":
VerifyWtsOutputToParentTagValue(tag, results);
break;
case "wts.requiredVsWorkload":
VerifyRequiredVsWorkloadTagValue(tag, results);
break;
case "wts.requiredSdks":
VerifyRequiredSdkTagValue(results);
break;
case "wts.requiredVersions":
VerifyRequiredVersionsTagValue(tag, results);
break;
case "wts.export.baseclass":
VerifyWtsExportBaseclassTagValue(tag, results);
break;
case "wts.export.setter":
VerifyWtsExportSetterTagValue(tag, results);
break;
case "wts.export.configtype":
VerifyWtsExportConfigTypeTagValue(tag, results);
break;
case "wts.export.configvalue":
VerifyWtsExportConfigValueTagValue(tag, results);
break;
case "wts.export.commandclass":
VerifyWtsExportCommandClassTagValue(tag, results);
break;
case "wts.export.pagetype":
VerifyWtsExportPageTypeTagValue(tag, results);
break;
case "wts.export.canExecuteChangedMethodName":
VerifyWtsExportCanExecuteChangedMethodNameTagValue(tag, results);
break;
case "wts.export.onNavigatedToParams":
VerifyWtsExportOnNavigatedToParamsTagValue(tag, results);
break;
case "wts.export.onNavigatedFromParams":
VerifyWtsExportOnNavigatedFromParamsTagValue(tag, results);
break;
case "wts.appmodel":
VerifyWtsAppModelTagValue(tag, results);
break;
default:
results.Add($"Unknown tag '{tag.Key}' specified in the file.");
break;
}
}
if (template.TemplateTags.ContainsKey("language") && template.TemplateTags.ContainsKey("wts.frontendframework"))
{
VerifyFrameworksAreAppropriateForLanguage(template.TemplateTags["language"], template.TemplateTags["wts.frontendframework"], results);
}
}