aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/javassist/bytecode
diff options
context:
space:
mode:
authorchibash <chiba@javassist.org>2018-09-02 22:56:45 +0900
committerchibash <chiba@javassist.org>2018-09-02 22:56:45 +0900
commitc52b9c7100412288eecf2ed098c63a0ba1643000 (patch)
tree0fa3a3e32fb327059f269bd6d6271957bcf70142 /src/main/javassist/bytecode
parent808dfb862f2967534e9250060b895eb0c8762cb9 (diff)
downloadjavassist-c52b9c7100412288eecf2ed098c63a0ba1643000.tar.gz
javassist-c52b9c7100412288eecf2ed098c63a0ba1643000.zip
modifies NestHostAttribute and NestMembersAttribute and adds test code
Diffstat (limited to 'src/main/javassist/bytecode')
-rw-r--r--src/main/javassist/bytecode/NestHostAttribute.java26
-rw-r--r--src/main/javassist/bytecode/NestMembersAttribute.java37
2 files changed, 63 insertions, 0 deletions
diff --git a/src/main/javassist/bytecode/NestHostAttribute.java b/src/main/javassist/bytecode/NestHostAttribute.java
index ae9f1e5d..5a52336d 100644
--- a/src/main/javassist/bytecode/NestHostAttribute.java
+++ b/src/main/javassist/bytecode/NestHostAttribute.java
@@ -1,3 +1,19 @@
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later,
+ * or the Apache License Version 2.0.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
package javassist.bytecode;
import java.io.DataInputStream;
@@ -6,6 +22,7 @@ import java.util.Map;
/**
* <code>NestHost_attribute</code>.
+ * It was introduced by JEP-181. See JVMS 4.7.28 for the specification.
*/
public class NestHostAttribute extends AttributeInfo {
/**
@@ -36,4 +53,13 @@ public class NestHostAttribute extends AttributeInfo {
int newHostIndex = getConstPool().copy(hostIndex, newCp, classnames);
return new NestHostAttribute(newCp, newHostIndex);
}
+
+ /**
+ * Returns <code>host_class_index</code>. The constant pool entry
+ * at this entry is a <code>CONSTANT_Class_info</code> structure.
+ * @return the value of <code>host_class_index</code>.
+ */
+ public int hostClassIndex() {
+ return ByteArray.readU16bit(info, 0);
+ }
}
diff --git a/src/main/javassist/bytecode/NestMembersAttribute.java b/src/main/javassist/bytecode/NestMembersAttribute.java
index 679dc28c..6a3023b4 100644
--- a/src/main/javassist/bytecode/NestMembersAttribute.java
+++ b/src/main/javassist/bytecode/NestMembersAttribute.java
@@ -1,3 +1,19 @@
+/*
+ * Javassist, a Java-bytecode translator toolkit.
+ * Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. Alternatively, the contents of this file may be used under
+ * the terms of the GNU Lesser General Public License Version 2.1 or later,
+ * or the Apache License Version 2.0.
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ */
+
package javassist.bytecode;
import java.io.DataInputStream;
@@ -6,6 +22,7 @@ import java.util.Map;
/**
* <code>NestMembers_attribute</code>.
+ * It was introduced by JEP-181. See JVMS 4.7.29 for the specification.
*/
public class NestMembersAttribute extends AttributeInfo {
/**
@@ -46,4 +63,24 @@ public class NestMembersAttribute extends AttributeInfo {
return new NestMembersAttribute(newCp, dest);
}
+
+ /**
+ * Returns <code>number_of_classes</code>.
+ * @return the number of the classes recorded in this attribute.
+ */
+ public int numberOfClasses() {
+ return ByteArray.readU16bit(info, 0);
+ }
+
+ /** Returns <code>classes[index]</code>.
+ *
+ * @param index the index into <code>classes</code>.
+ * @return the value at the given index in the <code>classes</code> array.
+ * It is an index into the constant pool.
+ * The constant pool entry at the returned index is a
+ * <code>CONSTANT_Class_info</code> structure.
+ */
+ public int memberClass(int index) {
+ return ByteArray.readU16bit(info, index * 2 + 2);
+ }
}