1 18 package org.apache.tools.ant.filters.util; 19 20 import java.io.ByteArrayInputStream ; 21 import java.io.IOException ; 22 import org.apache.bcel.classfile.ClassParser; 23 import org.apache.bcel.classfile.ConstantValue; 24 import org.apache.bcel.classfile.Field; 25 import org.apache.bcel.classfile.JavaClass; 26 27 32 public final class JavaClassHelper { 33 34 private static final String LS = System.getProperty("line.separator"); 35 36 43 public static StringBuffer getConstants(byte[] bytes) 44 throws IOException { 45 final StringBuffer sb = new StringBuffer (); 46 final ByteArrayInputStream bis = new ByteArrayInputStream (bytes); 47 final ClassParser parser = new ClassParser(bis, ""); 48 final JavaClass javaClass = parser.parse(); 49 final Field[] fields = javaClass.getFields(); 50 for (int i = 0; i < fields.length; i++) { 51 final Field field = fields[i]; 52 if (field != null) { 53 final ConstantValue cv = field.getConstantValue(); 54 if (cv != null) { 55 String cvs = cv.toString(); 56 if (cvs.startsWith("\"") && cvs.endsWith("\"")) { 58 cvs = cvs.substring(1, cvs.length() - 1); 59 } 60 sb.append(field.getName()); 61 sb.append('='); 62 sb.append(cvs); 63 sb.append(LS); 64 } 65 } 66 } 67 return sb; 68 } 69 } 70 | Popular Tags |