Example #1
0
  public void checkForUnusedTypeSelectors(Set defNames) {
    Iterator iterator = selectors.entrySet().iterator();

    Set unqualifiedDefNames = new HashSet();

    Iterator defNameIterator = defNames.iterator();

    while (defNameIterator.hasNext()) {
      String defName = (String) defNameIterator.next();

      unqualifiedDefNames.add(defName.replaceFirst(".*:", ""));
    }

    while (iterator.hasNext()) {
      Entry entry = (Entry) iterator.next();
      String styleName = (String) entry.getKey();
      StyleDef styleDef = (StyleDef) entry.getValue();
      String typeName = StyleDef.dehyphenize(styleName);

      if (styleDef.isTypeSelector()
          && localStyleTypeNames.contains(styleName)
          && !unqualifiedDefNames.contains(typeName)
          && !styleName.equals("global")) {
        if (configuration.showUnusedTypeSelectorWarnings()) {
          ThreadLocalToolkit.log(
              new UnusedTypeSelector(
                  compilationUnit.getSource().getName(), styleDef.getLineNumber(), styleName));
        }
      }
    }
  }
Example #2
0
  private void addStyleTypeSelector(String name, Rule rule, boolean local, int lineNumber) {
    StyleDef styleDef;

    if (local) {
      localStyleTypeNames.add(name);
    }

    if (selectors.containsKey(name)) {
      styleDef = (StyleDef) selectors.get(name);
    } else {
      styleDef =
          new StyleDef(
              name, true, mxmlDocument, compilationUnit.getSource(), lineNumber, perCompileData);
      selectors.put(name, styleDef);
    }

    styleDef.addRule(rule);

    if (mxmlDocument != null) {
      Iterator iterator = styleDef.getImports().iterator();

      while (iterator.hasNext()) {
        Import importObject = (Import) iterator.next();
        mxmlDocument.addImport(importObject.getValue(), importObject.getLineNumber());
      }
    }
  }
Example #3
0
  private String generateStyleSourceName(StyleDef styleDef) {
    String genFileName;
    String genDir = configuration.getGeneratedDirectory();
    if (genDir != null) {
      genFileName = genDir + File.separatorChar + "_" + styleDef.getName() + "Style.as";
    } else {
      genFileName = "_" + styleDef.getName() + "Style.as";
    }

    return genFileName;
  }
Example #4
0
  public List processDependencies(Set defNames, ResourceContainer resources) {
    List extraSources = new ArrayList();

    if (!fontFaceRules.isEmpty()) {
      // C: mixins in the generated FlexInit class are referred to by "names". that's why
      // extraClasses
      //    is necessary.
      compilationUnit.extraClasses.add(_FONTFACERULES);
      compilationUnit.mixins.add(_FONTFACERULES);

      extraSources.add(generateFontFaceRules(resources));
    }

    Set unqualifiedDefNames = new HashSet();

    Iterator defNameIterator = defNames.iterator();

    while (defNameIterator.hasNext()) {
      String defName = (String) defNameIterator.next();

      unqualifiedDefNames.add(defName.replaceFirst(".*:", ""));
    }

    Iterator iterator = selectors.entrySet().iterator();

    while (iterator.hasNext()) {
      Entry entry = (Entry) iterator.next();
      String styleName = (String) entry.getKey();
      StyleDef styleDef = (StyleDef) entry.getValue();
      String typeName = StyleDef.dehyphenize(styleName);

      if (!styleDef.isTypeSelector()
          || (unqualifiedDefNames.contains(typeName) || configuration.keepAllTypeSelectors())
          || styleName.equals("global")) {
        String className = "_" + typeName + "Style";
        // C: mixins in the generated FlexInit class are referred to by "names". that's why
        // extraClasses
        //    is necessary.
        compilationUnit.extraClasses.add(className);
        compilationUnit.mixins.add(className);

        extraSources.add(generateStyleSource(styleDef, resources));
      }
    }

    return extraSources;
  }