package com.github.sommeri.less4j.utils; import java.util.Iterator; import java.util.List; import com.github.sommeri.less4j.core.ast.ASTCssNode; import com.github.sommeri.less4j.core.ast.MixinReference; import com.github.sommeri.less4j.core.ast.ReusableStructureName; import com.github.sommeri.less4j.core.ast.Variable; public class LessPrinter { public String toString(MixinReference reference) { StringBuilder result = new StringBuilder(); Iterator<ReusableStructureName> iterator = reference.getNameChain().iterator(); if (iterator.hasNext()) result.append(iterator.next().asString()); while (iterator.hasNext()) { result.append(" > "); result.append(iterator.next().asString()); } result.append(" > "); result.append(reference.getFinalNameAsString()); result.append("(...)"); return result.toString(); } public String toVariablesString(List<Variable> cycle) { String result = ""; Iterator<Variable> iCycle = cycle.iterator(); while (iCycle.hasNext()) { Variable variable = iCycle.next(); result += variable.getName() + " ("+ variable.getSourceLine()+":"+variable.getSourceColumn()+") "; if (iCycle.hasNext()) result +="-> "; } return result; } public String toPosition(ASTCssNode node) { return node.getSourceLine()+":"+node.getSourceColumn(); } public String toMixinReferencesString(List<MixinReference> cycle) { String result = ""; Iterator<MixinReference> iReference = cycle.iterator(); while (iReference.hasNext()) { MixinReference reference = iReference.next(); result += reference.getFinalName() + " ("+ reference.getSourceLine()+":"+reference.getSourceColumn()+") "; if (iReference.hasNext()) result +="-> "; } return result; } public String toNodesPositions(List<? extends ASTCssNode> nodes) { String result = ""; Iterator<? extends ASTCssNode> node = nodes.iterator(); while (node.hasNext()) { ASTCssNode reference = node.next(); result += "("+ reference.getSourceLine()+":"+reference.getSourceColumn()+")"; if (node.hasNext()) result +=" -> "; } return result; } }