package org.javabuilders.swing.plugin.glazedlists.compiler;
import java.net.URI;
import javax.tools.SimpleJavaFileObject;
/**
* Taken from:
* http://www.javablogging.com/dynamic-in-memory-compilation/
*/
public class CharSequenceJavaFileObject extends SimpleJavaFileObject {
/**
* CharSequence representing the source code to be compiled
*/
private CharSequence content;
/**
* This constructor will store the source code in the
* internal "content" variable and register it as a
* source code, using a URI containing the class full name
*
* @param className
* name of the public class in the source code
* @param content
* source code to compile
*/
public CharSequenceJavaFileObject(String className,
CharSequence content) {
super(URI.create("string:///" + className.replace('.', '/')
+ Kind.SOURCE.extension), Kind.SOURCE);
this.content = content;
}
/**
* Answers the CharSequence to be compiled. It will give
* the source code stored in variable "content"
*/
@Override
public CharSequence getCharContent(
boolean ignoreEncodingErrors) {
return content;
}
}