List of usage examples for com.google.common.css.compiler.ast CssTree getMutatingVisitController
public MutatingVisitController getMutatingVisitController()
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; }