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

📄 seetagimpl.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
/* gnu.classpath.tools.gjdoc.SeeTagImpl   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.*;import java.util.*;import java.text.*;public class SeeTagImpl extends AbstractTagImpl implements SeeTag {   protected String     reference;   private String       referencedClassName;   private String       referencedMemberName;   private ClassDoc     referencedClass;   private MemberDoc    referencedMember;   private PackageDoc   referencedPackage;   private String       label;   private ClassDocImpl contextClass;   public SeeTagImpl(String text, ClassDocImpl contextClass) {      super(text);      this.contextClass=contextClass;   }   public void resolve() {      super.resolve();      text = text.trim();      if (text.startsWith("<") || text.startsWith("\"")) {         label = text;         return;      }      int labelNdx=text.indexOf(';');      if (labelNdx>=0) {	 label="";	 return;      }      for (int i=0; i<text.length(); ++i) {         if (" \t\r\n".indexOf(text.charAt(i)) >= 0) {            labelNdx = i;            break;         }      }      int openParenNdx = text.indexOf('(');      if (openParenNdx >= 0 && openParenNdx < labelNdx) {         labelNdx=text.indexOf(')', openParenNdx);         if (labelNdx >= 0) {            ++ labelNdx;         }      }      if (labelNdx<0 || labelNdx>=text.length()) {	 reference=text.trim();	 label="";      }      else {	 reference=text.substring(0,labelNdx).trim();	 label=text.substring(labelNdx).trim();      }        int mspecNdx=reference.indexOf('#');      String referencedFqName;      if (mspecNdx<0) {	 referencedFqName=reference;      }      else {	 referencedFqName=reference.substring(0,mspecNdx);	 referencedMemberName=reference.substring(mspecNdx+1);      }      // the following is in contradiction to the api docs, but      // conform to sun javadoc: return fully qualified classname      // with referencedClassName().      if (referencedFqName.trim().length()>0) {	 referencedClassName=referencedFqName;	 if (contextClass==null)	    referencedClass=Main.getRootDoc().classNamed(referencedFqName);	 else	    referencedClass=contextClass.findClass(referencedFqName);      }      else {	 referencedClassName="";	 referencedClass=contextClass;      }      if (referencedClass==null) {         referencedClass = Main.getRootDoc().classNamed("java.lang." + referencedFqName);      }      if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;      if (referencedClass!=null) {	 referencedPackage=referencedClass.containingPackage();	 referencedClassName=referencedClass.qualifiedName();	 if (referencedMemberName!=null) {	    if (referencedMemberName.indexOf('(')<0) {	       referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);               if (null == referencedMember) {                  MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();                  for (int i=0; i<methods.length; ++i) {                     if (methods[i].name().equals(referencedMemberName)) {                        if (null == referencedMember) {                           referencedMember = methods[i];                        }                        else {                           referencedClass = null;                           referencedMember = null;                           //print warning here                           break;                        }                     }                  }               }               else {                  referencedClass = referencedMember.containingClass();               }	    }	    else {	       referencedMember=((ClassDocImpl)referencedClass).findExecutableRec(referencedMemberName);               if (referencedMember==null) {                  //System.err.println("cannot find member for '"+referencedMemberName+"'");                  referencedClass = null;               }	    }	 }      }      /*      else {	 System.err.println("class not found: '"+referencedFqName + "' in context class " + contextClass + " in " + this);      }      */   }   public ClassDoc referencedClass() {      return referencedClass;   }   public String referencedClassName() {      return referencedClassName;   }   public MemberDoc referencedMember() {      return referencedMember;   }   public String referencedMemberName() {      return referencedMemberName;   }   public PackageDoc referencedPackage() {      return referencedPackage;   }   public String label() {      return label;   }   public String kind() {      return "@see";   }   public String name() {      return "@see";   }   public Tag[] firstSentenceTags() {      return inlineTags();   }   public Tag[] inlineTags() {      return new Tag[]{new TextTagImpl(referencedClassName)};   }}

⌨️ 快捷键说明

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