package de.dhbwstuttgart.bytecode; import org.objectweb.asm.*; import java.lang.String; public class JavaTXSignatureAttribute extends Attribute { public String signature; public JavaTXSignatureAttribute() { super("JavaTXSignature"); } protected JavaTXSignatureAttribute(String signature) { this(); this.signature = signature; } @Override protected Attribute read(ClassReader classReader, int offset, int length, char[] charBuffer, int codeAttributeOffset, Label[] labels) { var data = new byte[length]; System.arraycopy(classReader.b, offset, data, 0, length); var constantPoolOffset = data[0] << 8 | data[1]; return new JavaTXSignatureAttribute((String) classReader.readConst(constantPoolOffset, charBuffer)); } @Override protected ByteVector write(ClassWriter classWriter, byte[] code, int codeLength, int maxStack, int maxLocals) { var data = new ByteVector(); data.putShort(classWriter.newConst(this.signature)); return data; } }