private void validateStyle(MXMLTreeBuilder builder, ISourceLocation source)
{
final IDefinition definition = getDefinition();
if (definition instanceof IStyleDefinition)
{
final IStyleDefinition styleTag = (IStyleDefinition)definition;
final Set<String> applicableThemes = ImmutableSet.copyOf(styleTag.getThemes());
if (!applicableThemes.isEmpty())
{
final Set<String> themeNames = ImmutableSet.copyOf(builder.getProject().getThemeNames());
final boolean isStyleValid = !Sets.intersection(themeNames, applicableThemes).isEmpty();
if (!isStyleValid)
{
final String componentType;
if (getParent() instanceof IMXMLClassReferenceNode)
componentType = ((IMXMLClassReferenceNode)getParent()).getClassReference(builder.getProject()).getBaseName();
else
componentType = "";
final MXMLInvalidStyleProblem problem = new MXMLInvalidStyleProblem(
source,
this.getName(),
componentType,
styleTag.getThemes());
builder.addProblem(problem);
}
}
}
}