Package org.jboss.errai.ui.rebind.less

Source Code of org.jboss.errai.ui.rebind.less.LessConverter

package org.jboss.errai.ui.rebind.less;

import org.lesscss.LessCompiler;
import org.lesscss.LessException;

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import java.util.Scanner;

/**
* Converts a less resource to a css file using the java LessCompiler wrapper.
* @author edewit@redhat.com
*/
public class LessConverter {

  public File convert(URL resource) throws IOException {
    LessCompiler lessCompiler = new LessCompiler();
    try {
      String lessFile = readLessFile(resource);
      final String css = lessCompiler.compile(lessFile);
      return createCssFile(css);
    } catch (LessException e) {
      throw new IOException("specified less stylesheet could not be compiled to css", e);
    }
  }

  private File createCssFile(String css) throws IOException {
    final File compiled = File.createTempFile("compiled", ".css");
    PrintWriter writer = new PrintWriter(compiled);
    writer.print(css);
    writer.close();
    return compiled;
  }

  private String readLessFile(URL resource) throws IOException {
    Scanner scanner = new Scanner(resource.openStream());
    String lessFile = "";
    while (scanner.hasNext()) lessFile += scanner.nextLine();
    return lessFile;
  }
}
TOP

Related Classes of org.jboss.errai.ui.rebind.less.LessConverter

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.