diff options
author | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-08-28 20:52:43 +0400 |
---|---|---|
committer | Roman Shevchenko <roman.shevchenko@jetbrains.com> | 2014-08-28 20:52:43 +0400 |
commit | 663631f0456fcc245dd835889f86541d75161c53 (patch) | |
tree | e183fa9777242e2900ff3648a726f05b190bc51b /src/org/jetbrains/java/decompiler/struct/StructField.java | |
parent | f864084061806fda5510e50bfd2e69bf1dea406b (diff) | |
download | fernflower-663631f0456fcc245dd835889f86541d75161c53.tar fernflower-663631f0456fcc245dd835889f86541d75161c53.tar.gz fernflower-663631f0456fcc245dd835889f86541d75161c53.tar.lz fernflower-663631f0456fcc245dd835889f86541d75161c53.tar.xz fernflower-663631f0456fcc245dd835889f86541d75161c53.zip |
java-decompiler: post-import cleanup (classes moved)
Diffstat (limited to 'src/org/jetbrains/java/decompiler/struct/StructField.java')
-rw-r--r-- | src/org/jetbrains/java/decompiler/struct/StructField.java | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/org/jetbrains/java/decompiler/struct/StructField.java b/src/org/jetbrains/java/decompiler/struct/StructField.java new file mode 100644 index 0000000..2537e7b --- /dev/null +++ b/src/org/jetbrains/java/decompiler/struct/StructField.java @@ -0,0 +1,109 @@ +/* + * Fernflower - The Analytical Java Decompiler + * http://www.reversed-java.com + * + * (C) 2008 - 2010, Stiver + * + * This software is NEITHER public domain NOR free software + * as per GNU License. See license.txt for more details. + * + * This software is distributed WITHOUT ANY WARRANTY; without + * even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. + */ + +package org.jetbrains.java.decompiler.struct; + +import java.io.DataOutputStream; +import java.io.IOException; + +import org.jetbrains.java.decompiler.struct.attr.StructGeneralAttribute; +import org.jetbrains.java.decompiler.struct.consts.ConstantPool; +import org.jetbrains.java.decompiler.util.VBStyleCollection; + +/* + field_info { + u2 access_flags; + u2 name_index; + u2 descriptor_index; + u2 attributes_count; + attribute_info attributes[attributes_count]; + } +*/ + +public class StructField { + + // ***************************************************************************** + // public fields + // ***************************************************************************** + + public int access_flags; + public int name_index; + public int descriptor_index; + + private String name; + private String descriptor; + + // ***************************************************************************** + // private fields + // ***************************************************************************** + + private VBStyleCollection<StructGeneralAttribute, String> attributes; + + // ***************************************************************************** + // constructors + // ***************************************************************************** + + public StructField() {} + + // ***************************************************************************** + // public methods + // ***************************************************************************** + + public void writeToStream(DataOutputStream out) throws IOException { + + out.writeShort(access_flags); + out.writeShort(name_index); + out.writeShort(descriptor_index); + + out.writeShort(attributes.size()); + for(StructGeneralAttribute attr: attributes) { + attr.writeToStream(out); + } + } + + public void initStrings(ConstantPool pool, int class_index) { + String[] values = pool.getClassElement(ConstantPool.FIELD, class_index, name_index, descriptor_index); + name = values[0]; + descriptor = values[1]; + } + + // ***************************************************************************** + // getter and setter methods + // ***************************************************************************** + + public VBStyleCollection<StructGeneralAttribute, String> getAttributes() { + return attributes; + } + + public void setAttributes(VBStyleCollection<StructGeneralAttribute, String> attributes) { + this.attributes = attributes; + } + + public String getDescriptor() { + return descriptor; + } + + public void setDescriptor(String descriptor) { + this.descriptor = descriptor; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} |