| 1 19 20 package soot.jimple.spark.fieldrw; 21 import soot.tagkit.*; 22 import java.util.*; 23 import soot.*; 24 25 26 public abstract class FieldRWTag implements Tag { 27 String fieldNames = new String (); 28 FieldRWTag( Set fields ) { 29 StringBuffer sb = new StringBuffer (); 30 boolean first = true; 31 for( Iterator fieldIt = fields.iterator(); fieldIt.hasNext(); ) { 32 final SootField field = (SootField) fieldIt.next(); 33 if( !first ) sb.append( "%" ); 34 first = false; 35 sb.append( field.getDeclaringClass().getName() ); 36 sb.append( ":" ); 37 sb.append( field.getName() ); 38 } 39 fieldNames = sb.toString(); 40 } 41 public abstract String getName(); 42 public byte[] getValue() { 43 byte[] bytes = fieldNames.getBytes(); 44 byte[] ret = new byte[bytes.length+2]; 45 ret[0] = (byte)( bytes.length/256 ); 46 ret[1] = (byte)( bytes.length%256 ); 47 System.arraycopy( bytes, 0, ret, 2, bytes.length ); 48 return ret; 49 } 50 public String toString() { 51 return getName()+fieldNames; 52 } 53 } 54 55 | Popular Tags |