Package com.lunatech.doclets.jax.jaxb

Source Code of com.lunatech.doclets.jax.jaxb.JAXBDocletTest$LogWriter

package com.lunatech.doclets.jax.jaxb;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;

import org.junit.Test;

import com.lunatech.doclets.jax.jaxb.testcase.ClassExample;
import com.sun.tools.javac.util.Context;
import com.sun.tools.javac.util.ListBuffer;
import com.sun.tools.javac.util.Options;
import com.sun.tools.javadoc.JavadocTool;
import com.sun.tools.javadoc.Messager;
import com.sun.tools.javadoc.ModifierFilter;
import com.sun.tools.javadoc.RootDocImpl;

public class JAXBDocletTest {

  private static final Logger logger = Logger.getLogger(JAXBDocletTest.class.getName());

  @Test
  public void testStart() throws IOException {
    Context context = new Context();
    Options compOpts = Options.instance(context);
    compOpts.put("-sourcepath", "src/test/java");
    new PublicMessager(context, "test", new PrintWriter(new LogWriter(Level.SEVERE), true), new PrintWriter(new LogWriter(Level.WARNING),
        true), new PrintWriter(new LogWriter(Level.FINE), true));

    JavadocTool javadocTool = JavadocTool.make0(context);
    ListBuffer<String> javaNames = new ListBuffer<String>();
    javaNames.append(ClassExample.class.getPackage().getName());
    ListBuffer<String[]> options = new ListBuffer<String[]>();
    ListBuffer<String> packageNames = new ListBuffer<String>();
    ListBuffer<String> excludedPackages = new ListBuffer<String>();

    RootDocImpl rootDocImpl = javadocTool.getRootDocImpl("en", "", new ModifierFilter(ModifierFilter.ALL_ACCESS), javaNames.toList(),
                                                         options.toList(), false, packageNames.toList(), excludedPackages.toList(), false,
                                                         false, false);
    logger.info(rootDocImpl.getRawCommentText());
    JAXBDoclet.start(rootDocImpl);
  }

  protected class LogWriter extends Writer {

    Level level;

    public LogWriter(Level level) {
      this.level = level;
    }

    public void write(char[] chars, int offset, int length) throws IOException {
      String s = new String(Arrays.copyOf(chars, length));
      if (!s.equals("\n"))
        logger.log(level, s);
    }

    public void flush() throws IOException {}

    public void close() throws IOException {}
  }

  public class PublicMessager extends Messager {

    public PublicMessager(Context context, String s) {
      super(context, s);
    }

    public PublicMessager(Context context, String s, PrintWriter printWriter, PrintWriter printWriter1, PrintWriter printWriter2) {
      super(context, s, printWriter, printWriter1, printWriter2);
    }
  }

}
TOP

Related Classes of com.lunatech.doclets.jax.jaxb.JAXBDocletTest$LogWriter

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.