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

com.github.sommeri.less4j.core.compiler.scopes.NullScope Maven / Gradle / Ivy

package com.github.sommeri.less4j.core.compiler.scopes;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import com.github.sommeri.less4j.core.ast.ASTCssNode;
import com.github.sommeri.less4j.core.ast.AbstractVariableDeclaration;
import com.github.sommeri.less4j.core.ast.Expression;
import com.github.sommeri.less4j.core.ast.ReusableStructure;
import com.github.sommeri.less4j.core.ast.ReusableStructureName;
import com.github.sommeri.less4j.core.ast.Variable;
import com.github.sommeri.less4j.core.compiler.expressions.ExpressionFilter;
import com.github.sommeri.less4j.core.compiler.scopes.local.LocalScope;

public class NullScope extends BasicScope {

  private static final String NULL = "#null#";

  public NullScope() {
    super(new LocalScope(null, Arrays.asList(NULL), NULL), new ScopesTree());
  }

  @Override
  public IScope getParent() {
    return this;
  }

  @Override
  public List getChilds() {
    return Collections.emptyList();
  }

  @Override
  public List getNames() {
    return Collections.emptyList();
  }

  @Override
  public boolean hasParent() {
    return false;
  }

  @Override
  public void registerVariable(AbstractVariableDeclaration declaration) {
  }

  @Override
  public void registerVariable(AbstractVariableDeclaration node, Expression replacementValue) {
  }

  @Override
  public void registerVariableIfNotPresent(String name, Expression replacementValue) {
  }

  @Override
  public Expression getValue(Variable variable) {
    return null;
  }

  @Override
  public Expression getValue(String name) {
    return null;
  }

  @Override
  public void registerMixin(ReusableStructure mixin, IScope mixinsBodyScope) {
  }

  //  @Override
  //  public void setParent(IScope parent) {
  //  }

  @Override
  public void removedFromAst() {
  }

  @Override
  public boolean isPresentInAst() {
    return false;
  }

  @Override
  public IScope getRootScope() {
    return this;
  }

  @Override
  public IScope getChildOwnerOf(ASTCssNode body) {
    return null;
  }

  @Override
  public void addNames(List names) {
  }

  @Override
  public String toFullName() {
    return toLongString();
  }

  @Override
  public void registerVariable(String name, Expression replacementValue) {
  }

  @Override
  public void addFilteredVariables(ExpressionFilter filter, IScope source) {
  }

  @Override
  public void addAllMixins(List mixins) {
  }

  @Override
  public void add(IScope otherSope) {
  }

  @Override
  public DataPlaceholder createDataPlaceholder() {
    return null;
  }

  @Override
  public void addToDataPlaceholder(IScope otherScope) {
  }

  @Override
  public void closeDataPlaceholder() {
  }

  @Override
  public List getAllMixins() {
    return Collections.emptyList();
  }

  @Override
  public List getMixinsByName(List nameChain, ReusableStructureName name) {
    return Collections.emptyList();
  }

  @Override
  public List getMixinsByName(ReusableStructureName name) {
    return Collections.emptyList();
  }

  @Override
  public List getMixinsByName(String name) {
    return Collections.emptyList();
  }

  @Override
  public IScope firstChild() {
    return null;
  }

  @Override
  public boolean isBodyOwnerScope() {
    return false;
  }

  @Override
  public IScope skipBodyOwner() {
    return this;
  }

  @Override
  public String toLongString() {
    return NULL;
  }

  @Override
  public boolean seesLocalDataOf(IScope otherScope) {
    return false;
  }

  @Override
  public IScope childByOwners(ASTCssNode headNode, ASTCssNode... restNodes) {
    return this;
  }

  @Override
  public int getTreeSize() {
    return 1;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy