Package com.github.sommeri.less4j

Source Code of com.github.sommeri.less4j.Less4jException

package com.github.sommeri.less4j;

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

import com.github.sommeri.less4j.LessCompiler.CompilationResult;
import com.github.sommeri.less4j.LessCompiler.Problem;
import com.github.sommeri.less4j.utils.ArraysUtils;
import com.github.sommeri.less4j.utils.ProblemsPrinter;

@SuppressWarnings("serial")
public class Less4jException extends Exception {

  private static final int SHOW_ERRORS = 2;
  private final CompilationResult partialResult;
  private final List<Problem> errors;
  private final String message;

  public Less4jException(Problem error, CompilationResult partialResult) {
   this(Arrays.asList(error), partialResult);
  }
 
  public Less4jException(List<Problem> errors, CompilationResult partialResult) {
    super();
    this.errors = errors;
    this.partialResult = partialResult;
    this.message = createMessage();
  }

  public CompilationResult getPartialResult() {
    return partialResult;
  }

  public List<Problem> getErrors() {
    return errors;
  }
 
  @Override
  public String getMessage() {
    return message;
  }

  private String createMessage() {
    ProblemsPrinter problemsPrinter = new ProblemsPrinter();
   
    StringBuilder builder = new StringBuilder("Could not compile less. ");
    builder.append(errors.size()).append(" error(s) occurred:\n");
   
    List<Problem> visibleErrors = ArraysUtils.safeSublist(errors, 0, SHOW_ERRORS);
    String visibleErrorsStr = problemsPrinter.printErrors(visibleErrors);
    builder.append(visibleErrorsStr);
   
    if (errors.size()>SHOW_ERRORS)
      builder.append("...\n");
   
    return  builder.toString();
  }
}
TOP

Related Classes of com.github.sommeri.less4j.Less4jException

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.