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

📄 memberdocimpl.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
/* gnu.classpath.tools.gjdoc.MemberDocImpl   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 java.util.*;import com.sun.javadoc.*;public abstract class MemberDocImpl extends ProgramElementDocImpl implements MemberDoc {   protected String typeName;   protected Type   type;   public MemberDocImpl(ClassDoc containingClass,			PackageDoc containingPackage,                        SourcePosition position) {      super(containingClass,	    containingPackage,            position);   }   public String qualifiedName() {      return containingClass().qualifiedName()+"."+name();   }   public boolean isSynthetic() {      return false;   }   int parseModifiers(char[] source, int startIndex, int endIndex) {      Debug.log(9,"parseModifiers '"+new String(source,startIndex,endIndex-startIndex)+"'");      final int STATE_NORMAL = 1;      final int STATE_STARC  = 2;      final int STATE_SLASHC = 3;      int state = STATE_NORMAL;      StringBuffer word = new StringBuffer();      StringBuffer typeNameBuf = new StringBuffer();      int lastWordStart = startIndex;      int firstChar = 0;      int lastChar = 0;      for (; startIndex<endIndex; ++startIndex) {	 if (state==STATE_STARC) {	    if (startIndex<endIndex-1 && source[startIndex]=='*' && source[startIndex+1]=='/') {	       ++startIndex;	       state=STATE_NORMAL;	    }	 }	 else if (state==STATE_SLASHC) {	    if (source[startIndex]=='\n') {	       state=STATE_NORMAL;	    }	 }	 else if (startIndex<endIndex-1 && source[startIndex]=='/' && source[startIndex+1]=='*') {	    ++startIndex;	    state=STATE_STARC;	 }	 else if (source[startIndex]=='=' || source[startIndex]=='(' || source[startIndex]==';') {            typeName = typeNameBuf.toString();            return lastWordStart;	 }	 else if (Parser.WHITESPACE.indexOf(source[startIndex])>=0                  || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {	    if (word.length()>0 && lastChar != '.') {	       if (processModifier(word.toString())) {	       }	       else if (typeNameBuf.length()==0 && !isConstructor()) {                  typeNameBuf.setLength(0);		  typeNameBuf.append(word);	       }	       else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {		  typeNameBuf.append(word);	       }	       else {                  typeName = typeNameBuf.toString();		  return lastWordStart;	       }	       word.setLength(0);	       lastWordStart=startIndex;	    }	 }	 else {	    if (lastWordStart<0) lastWordStart=startIndex;            lastChar = source[startIndex];            if (0 == word.length()) {               firstChar = lastChar;            }	    word.append((char)lastChar);	 }      }      typeName = typeNameBuf.toString();      return startIndex;   }    public Type type() {	//public Type type() throws ParseException { 	Debug.log(9,"type() called on "+containingClass()+"."+this);	if (type==null) {	    try {		type=((ClassDocImpl)containingClass()).typeForString(typeName);	    } catch (ParseException e) {	       System.err.println("FIXME: add try-catch to force compilation");	       e.printStackTrace();	    }	}	return type;    }   protected void setName(String name) {      this.name=name;   }   private String name;   public String name() {      return name;   }   public void setTypeName(String typeName) {       this.typeName=typeName;      this.type=null;   }   public String getTypeName() {      return typeName;   }   // return true if this Doc is include in the active set.    public boolean isIncluded() {      return Main.getInstance().includeAccessLevel(accessLevel);   }    public int compareTo(Object o) {      if (o instanceof MemberDocImpl) {	 int rc=name().compareTo(((MemberDocImpl)o).name());	 if (rc==0) 	    rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName());	 return rc;      }      else {	 return super.compareTo(o);      }   }   void resolve() {      if (type==null && typeName!=null) {	 Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);	 try {	    type=((ClassDocImpl)containingClass()).typeForString(typeName);	 } catch (ParseException e) {	    //System.err.println("FIXME: add try-catch to force compilation");	    //e.printStackTrace();	    Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");	 }      }      if (type instanceof ClassDocProxy) {	 String className=type.qualifiedTypeName();	 ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());	 if (realClassDoc!=null) {            type=realClassDoc;	 }	 else {	    //throw new Error("Class not found: "+className);	    /*** This is not an error, the class was not included	     * on the command line. Perhaps emit a notice here.	     *	    Main.getRootDoc().printError("Class not found '"			                 + className					 + "' in class '"					 + containingClass().qualifiedName()					 + "' member '"					 + name()					 + "'");	    */	 }      }   }   public void resolveComments()   {      super.resolveComments();      if (tagMap.isEmpty()) {         TagContainer inheritedTagMap = ClassDocImpl.findInheritedDoc(containingClass(),                                                                      this,                                                                      null);         if (null != inheritedTagMap) {            this.tagMap = inheritedTagMap.getTagMap();         }      }   }}

⌨️ 快捷键说明

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