soot.tagkit
Class JasminAttribute

java.lang.Object
  extended by soot.tagkit.JasminAttribute
All Implemented Interfaces:
Attribute, Tag
Direct Known Subclasses:
CodeAttribute

public abstract class JasminAttribute
extends Object
implements Attribute

This class must be extended by Attributes that can be emitted in Jasmin. The attributes must format their data in Base64 and if Unit references they may contain must be emitted as labels embedded and escaped in the attribute's Base64 data stream at the location where the value of their pc is to occur. For example:

 
    aload_1
    iload_2
    label2:
    iaload
 label3:
    iastore
    iinc 2 1
    label0:
    iload_2
    aload_0
    arraylength
 label4:
   if_icmplt label1
   return
 .code_attribute ArrayCheckAttribute "%label2%Aw==%label3%Ag==%label4%Ag=="


Constructor Summary
JasminAttribute()
           
 
Method Summary
abstract  byte[] decode(String attr, Hashtable labelToPc)
           
abstract  String getJasminValue(Map instToLabel)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface soot.tagkit.Attribute
setValue
 
Methods inherited from interface soot.tagkit.Tag
getName, getValue
 

Constructor Detail

JasminAttribute

public JasminAttribute()
Method Detail

decode

public abstract byte[] decode(String attr,
                              Hashtable labelToPc)

getJasminValue

public abstract String getJasminValue(Map instToLabel)