]> source.dussan.org Git - javassist.git/commitdiff
Add the ability to retrieve and change the Major/Minor versions of the ClassFile
authorejort <ejort@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Fri, 8 Apr 2005 17:19:58 +0000 (17:19 +0000)
committerejort <ejort@30ef5769-5b8d-40dd-aea6-55b5d6557bb3>
Fri, 8 Apr 2005 17:19:58 +0000 (17:19 +0000)
git-svn-id: http://anonsvn.jboss.org/repos/javassist/trunk@165 30ef5769-5b8d-40dd-aea6-55b5d6557bb3

src/main/javassist/bytecode/ClassFile.java
src/main/javassist/bytecode/ConstPool.java

index 713e509d531cdeb5cb458a31a11216b5f3fa9818..74711369d264f288a09e4ea543b36f79bf36680e 100644 (file)
@@ -623,4 +623,44 @@ public final class ClassFile {
         out.writeShort(attributes.size());
         AttributeInfo.writeAll(attributes, out);
     }
+
+    /**
+     * Get the Major version
+     *
+     * @return the major version
+     */
+    public int getMajorVersion()
+    {
+        return major;
+    }
+
+    /**
+     * Set the Major version
+     *
+     * @param major the major version
+     */
+    public void setMajorVersion(int major)
+    {
+       this.major = major;
+    }
+
+    /**
+     * Get the Minor version
+     *
+     * @return the minor version
+     */
+    public int getMinorVersion()
+    {
+        return minor;
+    }
+
+    /**
+     * Set the Minor version
+     *
+     * @param minor the minor version
+     */
+    public void setMinorVersion(int minor)
+    {
+       this.minor = minor;
+    }
 }
index ad5edc5b4fd68dc992c03367e33f8f3ec1d03c39..1676c11659bee47108e2b179a86c84706fdcae16 100644 (file)
@@ -20,8 +20,10 @@ import java.io.DataOutputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.PrintWriter;
 import java.io.IOException;
-import java.util.Map;
 import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
 import javassist.CtClass;
 
 /**
@@ -837,6 +839,25 @@ public final class ConstPool {
         }
     }
 
+    /**
+     * Get all the class names
+     *
+     * @return a set of class names
+     */
+    public Set getClassNames()
+    {
+        HashSet result = new HashSet();
+        LongVector v = items;
+        int size = numOfItems;
+        for (int i = 1; i < size; ++i)
+        {
+            String className = ((ConstInfo) v.elementAt(i)).getClassName(this);
+            if (className != null)
+               result.add(className);
+        }
+        return result;
+    }
+
     /**
      * Replaces all occurrences of a class name.
      *
@@ -961,6 +982,7 @@ public final class ConstPool {
 abstract class ConstInfo {
     public abstract int getTag();
 
+    public String getClassName(ConstPool cp) { return null; }
     public void renameClass(ConstPool cp, String oldName, String newName) {}
     public void renameClass(ConstPool cp, Map classnames) {}
     public abstract int copy(ConstPool src, ConstPool dest, Map classnames);
@@ -1010,6 +1032,11 @@ class ClassInfo extends ConstInfo {
 
     public int getTag() { return tag; }
 
+    public String getClassName(ConstPool cp)
+    {
+        return cp.getUtf8Info(name);
+    };
+
     public void renameClass(ConstPool cp, String oldName, String newName) {
         String nameStr = cp.getUtf8Info(name);
         if (nameStr.equals(oldName))