Example usage for com.google.common.css.compiler.ast CssTree getMutatingVisitController

List of usage examples for com.google.common.css.compiler.ast CssTree getMutatingVisitController

Introduction

In this page you can find the example usage for com.google.common.css.compiler.ast CssTree getMutatingVisitController.

Prototype

public MutatingVisitController getMutatingVisitController() 

Source Link

Usage

From source file:com.google.gwt.resources.rg.GssResourceGenerator.java

private List<String> finalizeTree(CssTree cssTree) throws UnableToCompleteException {
    new CheckDependencyNodes(cssTree.getMutatingVisitController(), errorManager, false).runPass();

    // Don't continue if errors exist
    checkErrors();/*from   w w w .  j  ava  2  s  .c o  m*/

    new CreateStandardAtRuleNodes(cssTree.getMutatingVisitController(), errorManager).runPass();
    new CreateMixins(cssTree.getMutatingVisitController(), errorManager).runPass();
    new CreateDefinitionNodes(cssTree.getMutatingVisitController(), errorManager).runPass();
    new CreateConstantReferences(cssTree.getMutatingVisitController()).runPass();
    new CreateConditionalNodes(cssTree.getMutatingVisitController(), errorManager).runPass();
    new CreateRuntimeConditionalNodes(cssTree.getMutatingVisitController()).runPass();
    new CreateComponentNodes(cssTree.getMutatingVisitController(), errorManager).runPass();

    new HandleUnknownAtRuleNodes(cssTree.getMutatingVisitController(), errorManager, allowedAtRules, true,
            false).runPass();
    new ProcessKeyframes(cssTree.getMutatingVisitController(), errorManager, true, true).runPass();
    new ProcessRefiners(cssTree.getMutatingVisitController(), errorManager, true).runPass();

    PermutationsCollector permutationsCollector = new PermutationsCollector(
            cssTree.getMutatingVisitController(), errorManager);
    permutationsCollector.runPass();

    return permutationsCollector.getPermutationAxes();
}

From source file:com.google.gwt.resources.rg.GssResourceGenerator.java

private Set<String> collectExternalClasses(CssTree cssTree) {
    ExternalClassesCollector externalClassesCollector = new ExternalClassesCollector(
            cssTree.getMutatingVisitController());

    externalClassesCollector.runPass();/*from   www . j  av a  2s .c  o  m*/

    return externalClassesCollector.getExternalClassNames();
}

From source file:com.google.gwt.resources.rg.GssResourceGenerator.java

private OptimizationInfo optimize(ExtendedCssTree extendedCssTree, ResourceContext context, boolean simplifyCss,
        boolean eliminateDeadStyles) throws UnableToCompleteException {
    CssTree cssTree = extendedCssTree.getCssTree();

    // Collect mixin definitions and replace mixins
    CollectMixinDefinitions collectMixinDefinitions = new CollectMixinDefinitions(
            cssTree.getMutatingVisitController(), errorManager);
    collectMixinDefinitions.runPass();//  w ww. ja v  a  2 s.co m
    new ReplaceMixins(cssTree.getMutatingVisitController(), errorManager,
            collectMixinDefinitions.getDefinitions()).runPass();

    new ProcessComponents<Object>(cssTree.getMutatingVisitController(), errorManager).runPass();

    RuntimeConditionalNodeCollector runtimeConditionalNodeCollector = new RuntimeConditionalNodeCollector(
            cssTree.getVisitController());
    runtimeConditionalNodeCollector.runPass();

    new ExtendedEliminateConditionalNodes(cssTree.getMutatingVisitController(),
            getPermutationsConditions(context, extendedCssTree.getPermutationAxes()),
            runtimeConditionalNodeCollector.getRuntimeConditionalNodes()).runPass();

    new DisallowDefInsideRuntimeConditionalNode(cssTree.getVisitController(), errorManager).runPass();

    // Don't continue if errors exist
    checkErrors();

    CollectConstantDefinitions collectConstantDefinitionsPass = new CollectConstantDefinitions(cssTree);
    collectConstantDefinitionsPass.runPass();

    ReplaceConstantReferences replaceConstantReferences = new ReplaceConstantReferences(cssTree,
            collectConstantDefinitionsPass.getConstantDefinitions(), true, errorManager, false);
    replaceConstantReferences.runPass();

    new ImageSpriteCreator(cssTree.getMutatingVisitController(), context, errorManager).runPass();

    Map<String, GssFunction> gssFunctionMap = new GwtGssFunctionMapProvider(context).get();
    new ResolveCustomFunctionNodes(cssTree.getMutatingVisitController(), errorManager, gssFunctionMap, true,
            allowedNonStandardFunctions).runPass();

    if (simplifyCss) {
        // Eliminate empty rules.
        new EliminateEmptyRulesetNodes(cssTree.getMutatingVisitController()).runPass();
        // Eliminating units for zero values.
        new EliminateUnitsFromZeroNumericValues(cssTree.getMutatingVisitController()).runPass();
        // Optimize color values.
        new ColorValueOptimizer(cssTree.getMutatingVisitController()).runPass();
        // Compress redundant top-right-bottom-left value lists.
        new AbbreviatePositionalValues(cssTree.getMutatingVisitController()).runPass();
    }

    if (eliminateDeadStyles) {
        // Report errors for duplicate declarations
        new DisallowDuplicateDeclarations(cssTree.getVisitController(), errorManager).runPass();
        // Split rules by selector and declaration.
        new SplitRulesetNodes(cssTree.getMutatingVisitController()).runPass();
        // Dead code elimination.
        new MarkRemovableRulesetNodes(cssTree).runPass();
        new EliminateUselessRulesetNodes(cssTree).runPass();
        // Merge of rules with same selector.
        new MergeAdjacentRulesetNodesWithSameSelector(cssTree).runPass();
        new EliminateUselessRulesetNodes(cssTree).runPass();
        // Merge of rules with same styles.
        new MergeAdjacentRulesetNodesWithSameDeclarations(cssTree).runPass();
        new EliminateUselessRulesetNodes(cssTree).runPass();
    }

    return new OptimizationInfo(collectConstantDefinitionsPass.getConstantDefinitions());
}

From source file:com.google.gwt.resources.rg.GssResourceGenerator.java

@Override
protected String getCssExpression(TreeLogger logger, ResourceContext context, JMethod method)
        throws UnableToCompleteException {
    CssTree cssTree = cssTreeMap.get(method).getCssTree();

    String standard = printCssTree(cssTree);

    // TODO add configuration properties for swapLtrRtlInUrl, swapLeftRightInUrl and
    // shouldFlipConstantReferences booleans
    RecordingBidiFlipper recordingBidiFlipper = new RecordingBidiFlipper(cssTree.getMutatingVisitController(),
            false, false, true);/* w w  w .  j a  va 2  s  . c om*/
    recordingBidiFlipper.runPass();

    if (recordingBidiFlipper.nodeFlipped()) {
        String reversed = printCssTree(cssTree);
        return LocaleInfo.class.getName() + ".getCurrentLocale().isRTL() ? " + reversed + " : " + standard;
    } else {
        return standard;
    }
}

From source file:com.google.gwt.resources.rg.GssResourceGenerator.java

private Map<String, String> doClassRenaming(CssTree cssTree, JMethod method, TreeLogger logger,
        ResourceContext context) throws UnableToCompleteException {
    Map<String, Map<String, String>> replacementsWithPrefix = computeReplacements(method, logger, context);

    Set<String> externalClasses = collectExternalClasses(cssTree);

    RenamingSubstitutionMap substitutionMap = new RenamingSubstitutionMap(replacementsWithPrefix,
            externalClasses, isStrictResource(method), logger);

    new CssClassRenaming(cssTree.getMutatingVisitController(), substitutionMap, null).runPass();

    if (substitutionMap.hasError()) {
        throw new UnableToCompleteException();
    }/* www .  j a v  a2  s.co  m*/

    Map<String, String> mapping = replacementsWithPrefix.get("");

    mapping = Maps.newHashMap(Maps.filterKeys(mapping, Predicates.in(substitutionMap.getStyleClasses())));

    // add external classes in the mapping
    for (String external : externalClasses) {
        mapping.put(external, external);
    }

    return mapping;
}