package org.oddjob.tools.includes; import java.io.File; import java.io.FileInputStream; import org.apache.log4j.Logger; import org.oddjob.doclet.CustomTagNames; /** * Creates text that can be inserted into JavaDoc or another XML document from * a Java Source Code File. * * * @author rob * */ public class JavaCodeFileLoader implements IncludeLoader, CustomTagNames { private static final Logger logger = Logger.getLogger(JavaCodeFileLoader.class); private final File base; public JavaCodeFileLoader(File base) { this.base = base; } @Override public boolean canLoad(String tag) { return JAVA_FILE_TAG.equals(tag); } public String load(String path) { try { FilterFactory filterFactory = new FilterFactory(path); File file = new File(base, filterFactory.getResourcePath()); logger.info("Reading file " + file); String result = filterFactory.getTextLoader().load( new FileInputStream(file)); Java2HTML java2html = new Java2HTML(); return java2html.convert(result); } catch (Exception e) { return "<p><em>" + e.toString() + "</em></p>" + EOL; } } }