All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.common.css.compiler.ast.AtRuleHandler Maven / Gradle / Ivy

Go to download

Closure Stylesheets is an extension to CSS that adds variables, functions, conditionals, and mixins to standard CSS. The tool also supports minification, linting, RTL flipping, and CSS class renaming.

The newest version!
/*
 * Copyright 2008 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.google.common.css.compiler.ast;

/**
 * A handler for at rules.
 *
 */
public interface AtRuleHandler {
  /**
   * @return {@code true} if the contents of the rule should be visited,
   *     false otherwise. {@link #leaveConditionalRule(CssConditionalRuleNode)}
   *     will still be called.
   */
  boolean enterConditionalRule(CssConditionalRuleNode node);

  /** Called after visiting a {@code CssConditionalRuleNode}'s sub trees */
  void leaveConditionalRule(CssConditionalRuleNode node);

  /** Called before visiting a {@code CssImportRuleNode}'s sub trees */
  boolean enterImportRule(CssImportRuleNode node);

  /** Called after visiting a {@code CssImportRuleNode}'s sub trees */
  void leaveImportRule(CssImportRuleNode node);

  /** Called before visiting a {@code CssMediaRuleNode}'s sub trees */
  boolean enterMediaRule(CssMediaRuleNode node);

  /** Called after visiting a {@code CssMediaRuleNode}'s sub trees */
  void leaveMediaRule(CssMediaRuleNode node);

  /** Called before visiting a {@code CssPageRuleNode}'s sub trees */
  boolean enterPageRule(CssPageRuleNode node);

  /** Called after visiting a {@code CssPageRuleNode}'s sub trees */
  void leavePageRule(CssPageRuleNode node);

  /** Called before visiting a {@code CssPageSelectorNode}'s sub trees */
  boolean enterPageSelector(CssPageSelectorNode node);

  /** Called after visiting a {@code CssPageSelectorNode}'s sub trees */
  void leavePageSelector(CssPageSelectorNode node);

  /** Called before visiting a {@code CssFontFaceNode}'s sub trees */
  boolean enterFontFace(CssFontFaceNode node);

  /** Called after visiting a {@code CssFontFaceNode}'s sub trees */
  void leaveFontFace(CssFontFaceNode node);

  /**
   * @return {@code true} if the contents of the rule should be visited,
   *     false otherwise. {@link #leaveDefinition(CssDefinitionNode)}
   *     will still be called.
   */
  boolean enterDefinition(CssDefinitionNode node);

  /** Called after visiting a {@code CssDefinitionNode}'s sub trees */
  void leaveDefinition(CssDefinitionNode node);

  /** Called before visiting a {@code CssUnknownAtRuleNode}'s sub trees */
  boolean enterUnknownAtRule(CssUnknownAtRuleNode node);

  /** Called after visiting a {@code CssUnknownAtRuleNode}'s sub trees */
  void leaveUnknownAtRule(CssUnknownAtRuleNode node);

  /** Called between adjacent nodes in a media type list */
  boolean enterMediaTypeListDelimiter(CssNodesListNode node);

  /** Called between adjacent nodes in a media type list */
  void leaveMediaTypeListDelimiter(CssNodesListNode node);

  /** Called before visiting a {@code CssComponentNode}'s sub trees */
  boolean enterComponent(CssComponentNode node);

  /** Called after visiting a {@code CssComponentNode}'s sub trees */
  void leaveComponent(CssComponentNode node);

  /** Called before visiting a {@code CssKeyframesNode}'s sub trees */
  boolean enterKeyframesRule(CssKeyframesNode node);

  /** Called after visiting a {@code CssKeyframesNode}'s sub trees */
  void leaveKeyframesRule(CssKeyframesNode node);

  /** Called before visiting a {@code CssMixinDefinitionNode}'s sub trees */
  boolean enterMixinDefinition(CssMixinDefinitionNode node);

  /** Called after visiting a {@code CssMixinDefinitionNode}'s sub trees */
  void leaveMixinDefinition(CssMixinDefinitionNode node);

  /** Called before visiting a {@code CssMixinNode}'s sub trees */
  boolean enterMixin(CssMixinNode node);

  /** Called after visiting a {@code CssMixinNode}'s sub trees */
  void leaveMixin(CssMixinNode node);

  /** Called before visiting a {@code CssProvideNode}'s sub trees */
  boolean enterProvideNode(CssProvideNode node);

  /** Called after visiting a {@code CssProvideNode}'s sub trees */
  void leaveProvideNode(CssProvideNode node);

  /** Called before visiting a {@code CssRequireNode}'s sub trees */
  boolean enterRequireNode(CssRequireNode node);

  /** Called after visiting a {@code CssRequireNode}'s sub trees */
  void leaveRequireNode(CssRequireNode node);


}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy