⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timerdoclet.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
/* gnu.classpath.tools.gjdoc.TimerDoclet   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 modifyit under the terms of the GNU General Public License as published bythe 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, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with GNU Classpath; see the file COPYING.  If not, write to theFree Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA02111-1307 USA. */package gnu.classpath.tools.gjdoc;import com.sun.javadoc.*;public class TimerDoclet {   private static Object doclet = null;   private static long maximumHeap = -1;      private static Thread memThread;   private static boolean runMemThread = true;   private static void init() throws Exception {      if (doclet==null) {	 doclet=Class.forName("com.sun.tools.doclets.standard.Standard").newInstance();	 memThread=new Thread() {	       	       public void run() {		  while (runMemThread) {		     synchronized (TimerDoclet.class) {			TimerDoclet.maximumHeap=Math.max(TimerDoclet.maximumHeap,							 Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());		     }		     try { Thread.sleep(50); } catch (Exception e) {}		  }	       }	    };	 //memThread.start();      }   }   public static boolean validOptions(String[][] options, DocErrorReporter reporter)        throws Exception {      init();      return ((Boolean)doclet.getClass().getMethod("validOptions", new Class[]{String[][].class, DocErrorReporter.class}).invoke(null, new Object[]{options, reporter})).booleanValue();      //return false; //doclet.validOptions(options, reporter);   }   public static int optionLength(String option) throws Exception {      init();      return ((Integer)doclet.getClass().getMethod("optionLength", new Class[]{String.class}).invoke(null, new Object[]{option})).intValue();   }   public static boolean start(RootDoc root) throws Exception {      Timer.setBeforeDocletTime();      synchronized (TimerDoclet.class) {	 Timer.setMaxDriverHeap(maximumHeap);	 maximumHeap=-1;      }      //new com.sun.tools.doclets.standard.Standard().validOptions(root.options(), root);      //new com.sun.tools.doclets.standard.Standard().start(root);            if (validOptions(root.options(), root)) {	 doclet.getClass().getMethod("start", new Class[]{RootDoc.class}).invoke(null, new Object[]{root});      }      runMemThread=false;      Timer.setStopTime();      synchronized (TimerDoclet.class) {	 Timer.setMaxDocletHeap(maximumHeap);      }      Timer.shutdown();      return true;   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -