Example usage for com.google.common.css.compiler.passes ReplaceConstantReferences ReplaceConstantReferences

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

Introduction

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

Prototype

public ReplaceConstantReferences(CssTree tree, @Nullable ConstantDefinitions constantDefinitions,
            boolean removeDefs, ErrorManager errorManager, boolean allowUndefinedConstants) 

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();//w ww  . 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());
}