1 4 package net.sourceforge.pmd.jaxen; 5 6 import net.sourceforge.pmd.ast.Node; 7 8 import java.lang.reflect.InvocationTargetException ; 9 import java.lang.reflect.Method ; 10 11 14 public class Attribute { 15 16 private static final Object [] EMPTY_OBJ_ARRAY = new Object [0]; 17 private Node parent; 18 private String name; 19 private Method method; 20 21 public Attribute(Node parent, String name, Method m) { 22 this.parent = parent; 23 this.name = name; 24 this.method = m; 25 } 26 27 public String getValue() { 28 try { 30 Object res = method.invoke(parent, EMPTY_OBJ_ARRAY); 31 if (res != null) { 32 if (res instanceof String ) { 33 return (String ) res; 34 } 35 return String.valueOf(res); 36 } 37 } catch (IllegalAccessException iae) { 38 iae.printStackTrace(); 39 } catch (InvocationTargetException ite) { 40 ite.printStackTrace(); 41 } 42 return ""; 43 } 44 45 public String getName() { 46 return name; 47 } 48 49 public Node getParent() { 50 return parent; 51 } 52 53 public String toString() { 54 return name + ":" + getValue() + ":" + parent; 55 } 56 } 57 | Popular Tags |