FileDocCategorySizeDatePackage
JavaClassHelper.javaAPI DocApache Ant 1.702733Wed Dec 13 06:16:18 GMT 2006org.apache.tools.ant.filters.util

JavaClassHelper

public final class JavaClassHelper extends Object
Helper class that filters constants from a Java Class

Fields Summary
private static final String
LS
System specific line separator.
Constructors Summary
Methods Summary
public static java.lang.StringBuffergetConstants(byte[] bytes)
Get the constants declared in a file as name=value

param
bytes the class as a array of bytes
return
a StringBuffer contains the name=value pairs
exception
IOException if an error occurs


                                        
        
          
        final StringBuffer sb = new StringBuffer();
        final ByteArrayInputStream bis = new ByteArrayInputStream(bytes);
        final ClassParser parser = new ClassParser(bis, "");
        final JavaClass javaClass = parser.parse();
        final Field[] fields = javaClass.getFields();
        for (int i = 0; i < fields.length; i++) {
            final Field field = fields[i];
            if (field != null) {
                final ConstantValue cv = field.getConstantValue();
                if (cv != null) {
                    String cvs = cv.toString();
                    //Remove start and end quotes if field is a String
                    if (cvs.startsWith("\"") && cvs.endsWith("\"")) {
                        cvs = cvs.substring(1, cvs.length() - 1);
                    }
                    sb.append(field.getName());
                    sb.append('=");
                    sb.append(cvs);
                    sb.append(LS);
                }
            }
        }
        return sb;