001    package AST;
002    
003    import java.util.HashSet;
004    import java.io.File;
005    import java.util.*;
006    import beaver.*;
007    import java.util.ArrayList;
008    import java.util.zip.*;
009    import java.io.*;
010    import java.io.FileNotFoundException;
011    import java.util.Collection;
012    /**
013      * @ast class
014     * 
015     */
016    public class CONSTANT_Class_Info extends CONSTANT_Info {
017    
018        public int name_index;
019    
020    
021    
022        public CONSTANT_Class_Info(BytecodeParser parser) {
023          super(parser);
024          name_index = p.u2();
025        }
026    
027    
028    
029        public String toString() {
030          return "ClassInfo: " + name();
031        }
032    
033    
034    
035        public String name() {
036          String name = ((CONSTANT_Utf8_Info) this.p.constantPool[name_index]).string();
037          //name = name.replaceAll("\\/", ".");
038          name = name.replace('/', '.');
039          return name;
040        }
041    
042    
043    
044        public String simpleName() {
045          String name = name();
046          //name = name.replace('$', '.');
047          int pos = name.lastIndexOf('.');
048          return name.substring(pos + 1, name.length());
049        }
050    
051    
052    
053        public String packageDecl() {
054          String name = name();
055          //name = name.replace('$', '.');
056          int pos = name.lastIndexOf('.');
057          if(pos == -1)
058            return "";
059          return name.substring(0, pos);
060        }
061    
062    
063    
064        public Access access() {
065          String name = name();
066          int pos = name.lastIndexOf('.');
067          String typeName = name.substring(pos + 1, name.length());
068          String packageName = pos == -1 ? "" : name.substring(0, pos);
069          if(typeName.indexOf('$') != -1)
070            return new BytecodeTypeAccess(packageName, typeName);
071          else
072            return new TypeAccess(packageName, typeName);
073        }
074    
075    
076    }