summaryrefslogtreecommitdiffstats
path: root/src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java')
-rw-r--r--src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java252
1 files changed, 132 insertions, 120 deletions
diff --git a/src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java b/src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java
index 2648b3c..bd0596a 100644
--- a/src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java
+++ b/src/org/jetbrains/java/decompiler/struct/attr/StructGeneralAttribute.java
@@ -1,24 +1,25 @@
/*
- * Fernflower - The Analytical Java Decompiler
- * http://www.reversed-java.com
+ * Copyright 2000-2014 JetBrains s.r.o.
*
- * (C) 2008 - 2010, Stiver
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
*
- * This software is NEITHER public domain NOR free software
- * as per GNU License. See license.txt for more details.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * This software is distributed WITHOUT ANY WARRANTY; without
- * even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
*/
-
package org.jetbrains.java.decompiler.struct.attr;
+import org.jetbrains.java.decompiler.struct.consts.ConstantPool;
+
import java.io.DataOutputStream;
import java.io.IOException;
-import org.jetbrains.java.decompiler.struct.consts.ConstantPool;
-
/*
attribute_info {
u2 attribute_name_index;
@@ -29,117 +30,128 @@ import org.jetbrains.java.decompiler.struct.consts.ConstantPool;
public class StructGeneralAttribute {
- public static final String ATTRIBUTE_CODE = "Code";
- public static final String ATTRIBUTE_INNER_CLASSES = "InnerClasses";
- public static final String ATTRIBUTE_SIGNATURE = "Signature";
- public static final String ATTRIBUTE_ANNOTATION_DEFAULT = "AnnotationDefault";
- public static final String ATTRIBUTE_EXCEPTIONS = "Exceptions";
- public static final String ATTRIBUTE_ENCLOSING_METHOD = "EnclosingMethod";
- public static final String ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS = "RuntimeVisibleAnnotations";
- public static final String ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS = "RuntimeInvisibleAnnotations";
- public static final String ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = "RuntimeVisibleParameterAnnotations";
- public static final String ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = "RuntimeInvisibleParameterAnnotations";
- public static final String ATTRIBUTE_RUNTIME_VISIBLE_TYPE_ANNOTATIONS = "RuntimeVisibleTypeAnnotations";
- public static final String ATTRIBUTE_RUNTIME_INVISIBLE_TYPE_ANNOTATIONS = "RuntimeInvisibleTypeAnnotations";
- public static final String ATTRIBUTE_LOCAL_VARIABLE_TABLE = "LocalVariableTable";
- public static final String ATTRIBUTE_CONSTANT_VALUE = "ConstantValue";
- public static final String ATTRIBUTE_BOOTSTRAP_METHODS = "BootstrapMethods";
+ public static final String ATTRIBUTE_CODE = "Code";
+ public static final String ATTRIBUTE_INNER_CLASSES = "InnerClasses";
+ public static final String ATTRIBUTE_SIGNATURE = "Signature";
+ public static final String ATTRIBUTE_ANNOTATION_DEFAULT = "AnnotationDefault";
+ public static final String ATTRIBUTE_EXCEPTIONS = "Exceptions";
+ public static final String ATTRIBUTE_ENCLOSING_METHOD = "EnclosingMethod";
+ public static final String ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS = "RuntimeVisibleAnnotations";
+ public static final String ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS = "RuntimeInvisibleAnnotations";
+ public static final String ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS = "RuntimeVisibleParameterAnnotations";
+ public static final String ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS = "RuntimeInvisibleParameterAnnotations";
+ public static final String ATTRIBUTE_RUNTIME_VISIBLE_TYPE_ANNOTATIONS = "RuntimeVisibleTypeAnnotations";
+ public static final String ATTRIBUTE_RUNTIME_INVISIBLE_TYPE_ANNOTATIONS = "RuntimeInvisibleTypeAnnotations";
+ public static final String ATTRIBUTE_LOCAL_VARIABLE_TABLE = "LocalVariableTable";
+ public static final String ATTRIBUTE_CONSTANT_VALUE = "ConstantValue";
+ public static final String ATTRIBUTE_BOOTSTRAP_METHODS = "BootstrapMethods";
public static final String ATTRIBUTE_SYNTHETIC = "Synthetic";
public static final String ATTRIBUTE_DEPRECATED = "Deprecated";
- // *****************************************************************************
- // private fields
- // *****************************************************************************
-
- protected int attribute_name_index;
-
- protected byte[] info;
-
- protected String name;
-
- // *****************************************************************************
- // public methods
- // *****************************************************************************
-
- public void writeToStream(DataOutputStream out) throws IOException {
- out.writeShort(attribute_name_index);
- out.writeInt(info.length);
- if(info.length>0) {
- out.write(info);
- }
- }
-
- public void initContent(ConstantPool pool) {
- name = pool.getPrimitiveConstant(attribute_name_index).getString();
- }
-
- public static StructGeneralAttribute getMatchingAttributeInstance(int nameindex, String attrname) {
-
- StructGeneralAttribute attr;
-
- if(ATTRIBUTE_INNER_CLASSES.equals(attrname)) {
- attr = new StructInnerClassesAttribute();
- } else if(ATTRIBUTE_CONSTANT_VALUE.equals(attrname)) {
- attr = new StructConstantValueAttribute();
- } else if(ATTRIBUTE_SIGNATURE.equals(attrname)) {
- attr = new StructGenericSignatureAttribute();
- } else if(ATTRIBUTE_ANNOTATION_DEFAULT.equals(attrname)) {
- attr = new StructAnnDefaultAttribute();
- } else if(ATTRIBUTE_EXCEPTIONS.equals(attrname)) {
- attr = new StructExceptionsAttribute();
- } else if(ATTRIBUTE_ENCLOSING_METHOD.equals(attrname)) {
- attr = new StructEnclosingMethodAttribute();
- } else if(ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS.equals(attrname) ||
- ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS.equals(attrname)) {
- attr = new StructAnnotationAttribute();
- } else if(ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS.equals(attrname) ||
- ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS.equals(attrname)) {
- attr = new StructAnnotationParameterAttribute();
- } else if(ATTRIBUTE_RUNTIME_VISIBLE_TYPE_ANNOTATIONS.equals(attrname) ||
- ATTRIBUTE_RUNTIME_INVISIBLE_TYPE_ANNOTATIONS.equals(attrname)) {
- attr = new StructAnnotationTypeAttribute();
- } else if(ATTRIBUTE_LOCAL_VARIABLE_TABLE.equals(attrname)) {
- attr = new StructLocalVariableTableAttribute();
- } else if(ATTRIBUTE_BOOTSTRAP_METHODS.equals(attrname)) {
- attr = new StructBootstrapMethodsAttribute();
- } else if(ATTRIBUTE_SYNTHETIC.equals(attrname) || ATTRIBUTE_DEPRECATED.equals(attrname)) {
- attr = new StructGeneralAttribute();
- } else {
- // unsupported attribute
- return null;
- }
-
- attr.setAttribute_name_index(nameindex);
- return attr;
- }
-
- // *****************************************************************************
- // getter and setter methods
- // *****************************************************************************
-
- public byte[] getInfo() {
- return info;
- }
-
- public void setInfo(byte[] info) {
- this.info = info;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAttribute_name_index() {
- return attribute_name_index;
- }
-
- public void setAttribute_name_index(int attribute_name_index) {
- this.attribute_name_index = attribute_name_index;
- }
-
+ // *****************************************************************************
+ // private fields
+ // *****************************************************************************
+
+ protected int attribute_name_index;
+
+ protected byte[] info;
+
+ protected String name;
+
+ // *****************************************************************************
+ // public methods
+ // *****************************************************************************
+
+ public void writeToStream(DataOutputStream out) throws IOException {
+ out.writeShort(attribute_name_index);
+ out.writeInt(info.length);
+ if (info.length > 0) {
+ out.write(info);
+ }
+ }
+
+ public void initContent(ConstantPool pool) {
+ name = pool.getPrimitiveConstant(attribute_name_index).getString();
+ }
+
+ public static StructGeneralAttribute getMatchingAttributeInstance(int nameindex, String attrname) {
+
+ StructGeneralAttribute attr;
+
+ if (ATTRIBUTE_INNER_CLASSES.equals(attrname)) {
+ attr = new StructInnerClassesAttribute();
+ }
+ else if (ATTRIBUTE_CONSTANT_VALUE.equals(attrname)) {
+ attr = new StructConstantValueAttribute();
+ }
+ else if (ATTRIBUTE_SIGNATURE.equals(attrname)) {
+ attr = new StructGenericSignatureAttribute();
+ }
+ else if (ATTRIBUTE_ANNOTATION_DEFAULT.equals(attrname)) {
+ attr = new StructAnnDefaultAttribute();
+ }
+ else if (ATTRIBUTE_EXCEPTIONS.equals(attrname)) {
+ attr = new StructExceptionsAttribute();
+ }
+ else if (ATTRIBUTE_ENCLOSING_METHOD.equals(attrname)) {
+ attr = new StructEnclosingMethodAttribute();
+ }
+ else if (ATTRIBUTE_RUNTIME_VISIBLE_ANNOTATIONS.equals(attrname) ||
+ ATTRIBUTE_RUNTIME_INVISIBLE_ANNOTATIONS.equals(attrname)) {
+ attr = new StructAnnotationAttribute();
+ }
+ else if (ATTRIBUTE_RUNTIME_VISIBLE_PARAMETER_ANNOTATIONS.equals(attrname) ||
+ ATTRIBUTE_RUNTIME_INVISIBLE_PARAMETER_ANNOTATIONS.equals(attrname)) {
+ attr = new StructAnnotationParameterAttribute();
+ }
+ else if (ATTRIBUTE_RUNTIME_VISIBLE_TYPE_ANNOTATIONS.equals(attrname) ||
+ ATTRIBUTE_RUNTIME_INVISIBLE_TYPE_ANNOTATIONS.equals(attrname)) {
+ attr = new StructAnnotationTypeAttribute();
+ }
+ else if (ATTRIBUTE_LOCAL_VARIABLE_TABLE.equals(attrname)) {
+ attr = new StructLocalVariableTableAttribute();
+ }
+ else if (ATTRIBUTE_BOOTSTRAP_METHODS.equals(attrname)) {
+ attr = new StructBootstrapMethodsAttribute();
+ }
+ else if (ATTRIBUTE_SYNTHETIC.equals(attrname) || ATTRIBUTE_DEPRECATED.equals(attrname)) {
+ attr = new StructGeneralAttribute();
+ }
+ else {
+ // unsupported attribute
+ return null;
+ }
+
+ attr.setAttribute_name_index(nameindex);
+ return attr;
+ }
+
+ // *****************************************************************************
+ // getter and setter methods
+ // *****************************************************************************
+
+ public byte[] getInfo() {
+ return info;
+ }
+
+ public void setInfo(byte[] info) {
+ this.info = info;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public int getAttribute_name_index() {
+ return attribute_name_index;
+ }
+
+ public void setAttribute_name_index(int attribute_name_index) {
+ this.attribute_name_index = attribute_name_index;
+ }
}