List of usage examples for org.aspectj.apache.bcel.classfile ConstantPool getConstantPool
public Constant[] getConstantPool()
From source file:br.jabuti.lookup.java.bytecode.ClassClosure.java
License:Open Source License
public String[] accessedClasses(JavaClass javaClass) { Vector interestedClasses = new Vector(); ConstantPool cp = javaClass.getConstantPool(); Constant[] ct = cp.getConstantPool(); for (int i = 0; i < ct.length; i++) { if (ct[i] instanceof ConstantClass) { ConstantClass cc = (ConstantClass) ct[i]; // System.out.println("accessed: " + cc); ConstantUtf8 cutf = (ConstantUtf8) cp.getConstant(cc.getNameIndex()); String t = cutf.getBytes(); if (t.charAt(0) != '[') { interestedClasses.add(toPoint(t)); }/*from w ww. j a v a 2 s. c o m*/ } } return (String[]) interestedClasses.toArray(new String[0]); }
From source file:br.jabuti.metrics.klass.MetricCBO.java
License:Open Source License
@Override public double getResult(Program prog, String className) { RClass rc = prog.get(className);// w ww . ja v a 2 s. c om if (!(rc instanceof RClassCode)) { return -1.0; } RClassCode rcc = (RClassCode) rc; JavaClass theClazz = rcc.getTheClass(); ConstantPool cp = theClazz.getConstantPool(); Constant[] cts = cp.getConstantPool(); Set<String> hs = new HashSet<String>(); for (Constant ct : cts) { if (ct instanceof ConstantCP) { ConstantCP cc = (ConstantCP) ct; if (!className.equals(cc.getClass(cp))) { hs.add(cc.getClass(cp)); } } } return hs.size(); }