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

com.github.sommeri.less4j.utils.debugonly.DebugUtils Maven / Gradle / Ivy

Go to download

Less language is an extension of css and less4j compiles it into regular css. It adds several dynamic features into css: variables, expressions, nested rules. Less4j is a port. The original compiler was written in JavaScript and is called less.js. The less language is mostly defined in less.js documentation/issues and by what less.js actually do. Links to less.js: * home page: http://lesscss.org/ * source code & issues: https://github.com/cloudhead/less.js

There is a newer version: 1.17.2
Show newest version
package com.github.sommeri.less4j.utils.debugonly;

import java.util.HashSet;
import java.util.Set;

import com.github.sommeri.less4j.core.ast.ASTCssNode;
import com.github.sommeri.less4j.core.ast.Expression;
import com.github.sommeri.less4j.core.compiler.scopes.IScope;

// marked deprecated so I get a warning if it is referenced somewhere
@Deprecated
public class DebugUtils {

  private Set duplicates = new HashSet();
  
  public DebugUtils() {
  }

  /** 
   * Variable name should contain @ too e.g. "@width"
   */
  public void scopeTest(IScope scope, Object id, String variableName) {
    try {
      System.out.println("--- Scope Test: " +id+ " Scope name: " + scope);
      Expression value = scope.getValue("@width");
      
      String text = variableName + ": " + value;
      if (value==null) {
        text +=" !";
      }
      System.out.println(text);
    } catch (Throwable th) {
      th.printStackTrace();
    }
  }

  public void solveParentChildRelationShips(ASTCssNode node) {
    for (ASTCssNode kid : node.getChilds()) {
      kid.setParent(node);
      solveParentChildRelationShips(kid);
    }
  }

  public void checkParentChildRelationshipsSanity(ASTCssNode node, String prefix) {
    duplicates = new HashSet();
    doCheckParentChildRelationshipsSanity(node, prefix);
  }

  private void doCheckParentChildRelationshipsSanity(ASTCssNode node, String prefix) {
    for (ASTCssNode kid : node.getChilds()) {
      if (duplicates.contains(kid))
        System.out.println("duplicate " + prefix + kid);
      
      duplicates.add(kid);
      
      if (kid.getParent() != node)
        System.out.println("parent " + prefix + kid);

      doCheckParentChildRelationshipsSanity(kid, prefix);
    }
  }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy