亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? driver.java

?? linux下建立JAVA虛擬機的源碼KAFFE
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* gnu.classpath.tools.doclets.xmldoclet.Driver
   Copyright (C) 2001 Free Software Foundation, Inc.

This file is part of GNU Classpath.

GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
 
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
General Public License for more details.

You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING.  If not, write to the
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

package gnu.classpath.tools.doclets.xmldoclet;

import com.sun.javadoc.*;
import java.io.*;

import com.sun.tools.doclets.Taglet;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;

import java.text.DateFormat;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.HashSet;
import java.util.TreeSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.HashMap;
import java.util.Properties;
import java.util.Set;
import java.util.SortedSet;
import java.util.StringTokenizer;
import java.util.TreeMap;

import gnu.classpath.tools.gjdoc.TemporaryStore;
import gnu.classpath.tools.gjdoc.GjdocPackageDoc;

import gnu.classpath.tools.doclets.PackageGroup;
import gnu.classpath.tools.doclets.PackageMatcher;
import gnu.classpath.tools.doclets.InvalidPackageWildcardException;

import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;

import gnu.classpath.tools.taglets.AuthorTaglet;
import gnu.classpath.tools.taglets.VersionTaglet;
import gnu.classpath.tools.taglets.SinceTaglet;
import gnu.classpath.tools.taglets.DeprecatedTaglet;
import gnu.classpath.tools.taglets.GenericTaglet;
import gnu.classpath.tools.doclets.StandardTaglet;

import gnu.classpath.tools.java2xhtml.Java2xhtml;

import gnu.classpath.tools.IOToolkit;
import gnu.classpath.tools.FileSystemClassLoader;

/**
 *  A Doclet which retrieves all information presented by the Doclet
 *  API, dumping it to stdout in XML format.
 *
 *  @author Julian Scheid
 */
public class Driver {

   public static final String XMLDOCLET_VERSION = "0.6.1";

   /**
    *  Used for redirecting error messages to <code>/dev/null</code>.
    */
   private static class NullErrorReporter implements DocErrorReporter {
      public void printError(String ignore) {}
      public void printWarning(String ignore) {}
      public void printNotice(String ignore) {}
   }

   /*
    *  Taglet context constants.
    */
   private static final int CONTEXT_CONSTRUCTOR  = 1;
   private static final int CONTEXT_FIELD        = 2;
   private static final int CONTEXT_METHOD       = 3;
   private static final int CONTEXT_OVERVIEW     = 4;
   private static final int CONTEXT_PACKAGE      = 5;
   private static final int CONTEXT_TYPE         = 6;

   /**
    *  All XML output will go to this stream.
    */
   private PrintWriter out;

   /**
    *  How many spaces to indent each XML node level,
    *  i.e. Tab size for output.
    */
   private static int indentStep = 1;

   /**
    *  Won't output superfluous spaces if set to true.
    *  If set to false, output will be more legible.
    */
   private boolean compress = false;

   /**
    *  Won't output warning messages while fixing
    *  HTML code if set to true.
    */
   private boolean noHTMLWarn = false;

   /**
    *  Won't output warning messages when encountering tags
    *  that look like an email address if set to true.
    */
   private boolean noEmailWarn = false;

   /**
    *  Will fix HTML if necessary so that each comment
    *  contains valid XML code if set to true. If set
    *  to false, HTML code will not be modified and
    *  instead encapsulated in a CDATA section.
    */
   private boolean fixHTML = true;

   /**
    *  User-specified name of the directory where the final version of
    *  the generated files will be written to.
    *
    *  If no XSLT sheet is given, the XML output will go directly into
    *  this directory. Otherwise, XML output will go to a temporary
    *  directory and XSLT output will go to this directory.
    */
   private File targetDirectory = null;

   /**
    *  Directory where XML output will be written to. If no XSLT
    *  sheet was given, this is the target directory specified
    *  by the user. Otherwise, this is a temporary directory.
    */
   private File xmlTargetDirectory;

   /**
    *  Contains a number of TargetContexts which describe which XSLT
    *  sheet to apply to the output of this doclet, to what directory
    *  the XSLT output is written, and which postprocess driver to use
    *  to process XSLT output.
    */
   private List targets = new ArrayList();

   /**
    *  XML text to include at the end of every generated page. Read
    *  from the file specified on the command line using -bottomnote.
    *  If present, this will be written to the main output file
    *  (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.
    */
   private String bottomNote;

   /**
    *  Brief description of the package set. Can be specified on the
    *  command line using -title.  This will be written to the main
    *  output file (index.xml) in node
    *  /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet
    *  uses this for example in window titles.
    */
   private String title;

   /**
    *  Path to the directory where temporary files should be stored.
    *  Defaults to system tempdir, but can be overridden by user 
    *  with -workpath.
    */
   private String workingPath = System.getProperty("java.io.tmpdir");

   /**
    *  Temporary directory created by this doclet where all 
    *  temporary files will be stored in. If no temporary
    *  files are needed (i.e. no XSLT postprocessing stage
    *  specified by user), this is <code>null</code>.
    */
    private File workingDirectory;

   /**
    *  Whether to deep-copy the doc-files subdirectory.
    */
    private boolean docFilesSubdirsEnabled = false;

   /**
    *  Which direct subdirectories of the doc-files directories to exclude.
    *  Set of String.
    */
    private Set excludeDocFilesSubDirs = new HashSet();

   /**
    *  Stores the Doclet API RootDoc we are operating on.
    */
   private RootDoc rootDoc;

   /**
    *  XML namespace prefix used for all tags, except for HTML
    *  tags copied from Javadoc comments. Excluding colon.
    */
   public static final String tagPrefix = "gjdoc";

   /**
    *  Classpath for loading Taglet classes.
    */
   private String tagletPath = null;

   /**
    *  The current class that is being processed.
    *  Set in outputClassDoc().
    */
   private ClassDoc currentClass;

   /**
    *  The current member that is being processed.
    *  Set in outputMemberDoc().
    */
   private MemberDoc currentMember;

   /**
    *  The current constructor/method that is being processed.
    *  Set in outputExecutableMemberDoc().
    */
   private ExecutableMemberDoc currentExecMember;

   /**
    *  Mapping from tag type to Taglet for user Taglets specified on
    *  the command line.
    */
   private Map tagletMap = new LinkedHashMap();

   /**
    *  Keeps track of the tags mentioned by the user during option
    *  processiong so that an error can be emitted if a tag is
    *  mentioned more than once.
    */
   private List mentionedTags = new LinkedList();

   /**
    *  Stores options to be passed to the DocTranslet.
    */
   private DocTransletOptions docTransletOptions = new DocTransletOptions();   

   /**
    *  Stores the package groups specified in the user
    *  options. Contains objects of type PackageGroup.
    */
   private List packageGroups = new LinkedList();

   private HtmlRepairer htmlRepairer;

   public static boolean start(TemporaryStore _rootDocWrapper) {
      return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());
   }

   /**
    *  Official Doclet entry point.
    */
   public static boolean start(RootDoc _rootDoc) {

      // Create a new XmlDoclet instance and delegate control.
      TemporaryStore tstore = new TemporaryStore(_rootDoc);
      _rootDoc = null;
      return new Driver().instanceStart((RootDoc)tstore.getAndClear());
   }

   /**
    *  Output an XML tag describing a com.sun.javadoc.Type object.
    *  Assumes that the tag does not have subtags.
    *
    *  @param level  Level of indentation. Will be multiplied by 
    *                <code>indentStep</code> to yield actual amount
    *                of whitespace inserted at start of line.
    *  @param tag    Identifier for the XML tag being output.
    *  @param type   The Javadoc Type to be output.
    */
   protected void outputType(int level, String tag, Type type) {
      outputType(level, tag, type, true);
   }

   protected void outputType(int level, String tag, Type type, boolean atomic) {

      boolean isIncluded = false;
      ClassDoc typeAsClassDoc = type.asClassDoc();
      String packageName = null;
      if (null != typeAsClassDoc) {
         isIncluded = typeAsClassDoc.isIncluded();
         packageName = typeAsClassDoc.containingPackage().name();
      }
      println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+
	      " qualifiedtypename=\""+type.qualifiedTypeName()+"\""
	      +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")
              +(isIncluded?" isIncluded=\"true\"" : "")
              +((null != packageName)?" package=\"" + packageName + "\"" : "")
	      +(atomic?"/":"")+">");
   }

   protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {

      currentExecMember = memberDoc;

      outputMemberDocBody(level, memberDoc);

      Parameter[] parameters = memberDoc.parameters();
      for (int i=0, ilim=parameters.length; i<ilim; ++i) {
	 Parameter parameter = parameters[i];
	 outputType(level, "parameter name=\""+parameter.name()+"\"", parameter.type());
      }

      ClassDoc[] exceptions = memberDoc.thrownExceptions();
      for (int i=0, ilim=exceptions.length; i<ilim; ++i) {
	 ClassDoc exception = exceptions[i];
	 outputType(level, "thrownException", exception);
       }

      printAtomTag(level, "signature full=\""+memberDoc.signature()+"\" flat=\""+memberDoc.flatSignature()+"\"");

      if (memberDoc.isNative()) {
	 printAtomTag(level, "isNative");
      }

      if (memberDoc.isSynchronized()) {
	 printAtomTag(level, "isSynchronized");
      }
   }

   protected void outputMethodDoc(int level, MethodDoc methodDoc) {
      println();
      printOpenTag(level, "methoddoc name=\""+methodDoc.name()+"\"");
      outputExecutableMemberDocBody(level+1, methodDoc);
      outputType(level+1, "returns", methodDoc.returnType());
      printCloseTag(level, "methoddoc");
   }

   protected void outputMemberDocBody(int level, MemberDoc memberDoc) {
      currentMember = memberDoc;
      outputProgramElementDocBody(level, memberDoc);
   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美无乱码久久久免费午夜一区| 日韩午夜电影在线观看| 欧美日韩国产综合一区二区| 久久伊人中文字幕| 丝袜诱惑制服诱惑色一区在线观看| 国产白丝网站精品污在线入口| 欧美蜜桃一区二区三区| 亚洲欧洲精品天堂一级| 国产高清视频一区| 日韩免费成人网| 三级一区在线视频先锋| 色婷婷狠狠综合| 中文字幕一区二区三区蜜月| 国模大尺度一区二区三区| 91精品婷婷国产综合久久性色| 亚洲乱码中文字幕综合| 99久久久久久| 日韩一区欧美小说| 成人免费av在线| 国产精品人妖ts系列视频| 国产一区激情在线| 久久综合色天天久久综合图片| 老司机免费视频一区二区| 欧美男男青年gay1069videost| 午夜影院久久久| 欧美日韩高清一区二区不卡| 一二三区精品视频| 欧美丝袜丝交足nylons图片| 亚洲精品五月天| 欧美探花视频资源| 日日夜夜精品视频免费| 91精品国产麻豆| 另类人妖一区二区av| 欧美精品一区二区三区高清aⅴ | 蜜臀av在线播放一区二区三区| 色综合天天综合色综合av | 久久久国产精品麻豆| 国产一区三区三区| 中文字幕乱码一区二区免费| 丁香婷婷深情五月亚洲| 日本一区二区动态图| www.日韩精品| 国内外精品视频| 国产精品女上位| 色婷婷av一区二区三区之一色屋| 亚洲一区二区综合| 日韩无一区二区| 国产高清不卡一区二区| 亚洲人精品一区| 欧美精三区欧美精三区| 韩国午夜理伦三级不卡影院| 婷婷成人综合网| 日韩欧美中文一区| 粉嫩嫩av羞羞动漫久久久| 亚洲精品综合在线| 欧美放荡的少妇| 国产成人av一区二区三区在线| 综合久久综合久久| 欧美日韩1234| 国产精品996| 亚洲精品视频在线观看免费| 91精品国产综合久久婷婷香蕉| 老司机精品视频导航| 国产精品乱人伦中文| 欧美精品少妇一区二区三区| 国产一区二区三区不卡在线观看 | 亚洲第四色夜色| 精品盗摄一区二区三区| 91小视频免费看| 蜜臀99久久精品久久久久久软件 | xnxx国产精品| 欧美丝袜自拍制服另类| 国产凹凸在线观看一区二区| 亚洲一区二区三区国产| 国产欧美精品一区二区色综合| 欧美中文字幕一区二区三区| 国产一区美女在线| 婷婷夜色潮精品综合在线| 国产女同性恋一区二区| 欧美一区二区三区免费大片| 不卡大黄网站免费看| 日本不卡免费在线视频| 亚洲人成小说网站色在线| 精品久久国产97色综合| 欧美日韩精品一区二区三区| 99久久99精品久久久久久| 国产一区二区三区免费| 美女www一区二区| 亚洲主播在线播放| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 在线观看成人免费视频| 国产成人自拍在线| 激情图片小说一区| 日本欧美肥老太交大片| 亚洲精选一二三| 亚洲男人的天堂网| 中文字幕中文字幕一区| 国产日韩欧美不卡在线| 精品久久人人做人人爰| 欧美一区二区三区在| 欧美精品少妇一区二区三区| 欧美午夜精品一区二区三区| 懂色av一区二区三区免费看| 国产美女精品一区二区三区| 久久狠狠亚洲综合| 九色porny丨国产精品| 另类专区欧美蜜桃臀第一页| 奇米影视一区二区三区| 麻豆一区二区三区| 久久国产欧美日韩精品| 精品系列免费在线观看| 九色porny丨国产精品| 久久国产精品色婷婷| 久久成人av少妇免费| 国产精品一品视频| 国产+成+人+亚洲欧洲自线| 丁香亚洲综合激情啪啪综合| 成人丝袜18视频在线观看| 成人免费不卡视频| 在线亚洲+欧美+日本专区| 欧美日韩国产一级二级| 欧美久久一二区| 精品美女在线播放| 国产女人aaa级久久久级| 中文字幕综合网| 亚洲一区二区欧美日韩| 秋霞国产午夜精品免费视频| 激情文学综合丁香| www.性欧美| 欧美老女人在线| 久久久亚洲精华液精华液精华液| 国产精品毛片无遮挡高清| 一区二区三区欧美亚洲| 日本vs亚洲vs韩国一区三区二区| 极品瑜伽女神91| 成人av综合在线| 欧美日韩精品一区二区三区蜜桃 | 在线欧美日韩国产| 欧美日韩在线播放一区| 日韩欧美在线观看一区二区三区| 精品1区2区在线观看| 亚洲欧美一区二区在线观看| 亚洲国产精品一区二区久久 | 亚洲精品在线一区二区| 日韩理论片在线| 日韩av不卡在线观看| 国产成人亚洲综合a∨婷婷 | 国产91露脸合集magnet| 色综合色狠狠天天综合色| 91精品国产综合久久久久| 欧美高清在线视频| 亚洲综合成人在线视频| 国产一区不卡精品| 色婷婷综合五月| 久久精品在线观看| 亚洲国产精品久久久男人的天堂| 国产一区二三区| 欧美日韩一区三区| 国产精品国产自产拍高清av王其 | 亚洲国产日日夜夜| 懂色av中文字幕一区二区三区| 欧美乱妇一区二区三区不卡视频| 亚洲午夜av在线| 国产成人av自拍| 欧美一区二区三区不卡| 亚洲欧美经典视频| 丰满白嫩尤物一区二区| 91精品视频网| 午夜免费久久看| 91同城在线观看| 国产亚洲人成网站| 经典三级在线一区| 欧美精三区欧美精三区| 亚洲激情在线播放| av亚洲精华国产精华| 久久婷婷国产综合精品青草| 日韩国产精品久久久久久亚洲| 99精品欧美一区二区三区综合在线| 久久丝袜美腿综合| 麻豆国产精品一区二区三区| 欧美午夜宅男影院| 亚洲一区二区三区不卡国产欧美| 91丝袜呻吟高潮美腿白嫩在线观看| 久久久一区二区三区捆绑**| 久久成人18免费观看| 日韩一区二区三区电影在线观看| 五月天网站亚洲| 欧美日韩一卡二卡| 亚洲h动漫在线| 欧美日韩中文字幕一区| 亚洲一区二区三区四区在线| 91成人在线观看喷潮| 亚洲人精品午夜| 在线观看亚洲精品视频| 一区二区三区不卡视频| 欧美伊人久久大香线蕉综合69| 一区二区三区四区av| 欧洲一区二区三区免费视频| 亚洲国产精品久久人人爱蜜臀| 欧美日韩国产另类不卡|