Example usage for com.google.common.css.compiler.passes CollectConstantDefinitions runPass

List of usage examples for com.google.common.css.compiler.passes CollectConstantDefinitions runPass

Introduction

In this page you can find the example usage for com.google.common.css.compiler.passes CollectConstantDefinitions runPass.

Prototype

@Override
    public void runPass() 

Source Link

Usage

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();//from   w w w .  j  a  v  a 2 s  . c  o 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());
}