@Override
 public void validateReferences() throws QuickFixException {
   DefDescriptor<ComponentDef> desc = Flavors.toComponentDescriptor(getDescriptor());
   ComponentDef def = desc.getDef();
   if (!def.hasFlavorableChild()
       && !def.inheritsFlavorableChild()
       && !def.isDynamicallyFlavorable()) {
     throw new InvalidDefinitionException(
         String.format("%s must contain at least one aura:flavorable element", desc),
         getLocation());
   }
 }
  @Override
  public void appendDependencies(Set<DefDescriptor<?>> dependencies) {
    if (!getExpressions().isEmpty()) {
      DefDescriptor<ThemeDef> namespaceTheme = Themes.namespaceThemeDescriptor(descriptor);
      if (namespaceTheme.exists()) {
        dependencies.add(namespaceTheme);
      }
    }

    if (getDescriptor().getPrefix().equals(DefDescriptor.CUSTOM_FLAVOR_PREFIX)) {
      dependencies.add(Flavors.toComponentDescriptor(getDescriptor()));
    }
  }
Esempio n. 3
0
  @Override
  public Table<DefDescriptor<ComponentDef>, String, FlavorOverrideLocation> computeOverrides()
      throws QuickFixException {
    // component / flavor (might be multiple per cmp) / override location (should only be one per
    // cmp/flavor combo)
    Table<DefDescriptor<ComponentDef>, String, FlavorOverrideLocation> table =
        HashBasedTable.create();

    for (DefDescriptor<FlavoredStyleDef> style : getDefs()) {
      DefDescriptor<ComponentDef> cmp = Flavors.toComponentDescriptor(style);
      Map<String, FlavorAnnotation> annotations = style.getDef().getFlavorAnnotations();
      for (FlavorAnnotation annotation : annotations.values()) {
        table.put(
            cmp,
            annotation.getFlavorName(),
            new FlavorOverrideLocationImpl(style, annotation.getOverridesIf().orNull()));
      }
    }

    return table;
  }