I am trying to get the type information out of of a ConstantNameAndType...

here is my code so far
      String temp = 
pool.constantToString(((ConstantNameAndType)c).getNameIndex(), 
Constants.CONSTANT_Utf8) 
        + " " 
     + pool.constantToString(((ConstantNameAndType)c).getSignatureIndex(), 
Constants.CONSTANT_Utf8);
      log("temp="+temp);
      String temp2 = 
pool.constantToString(((ConstantNameAndType)c).getSignatureIndex(), 
Constants.CONSTANT_Utf8);
      log("temp2="+temp2);
      //log("temp2a="+Utility.typeOfSignature(temp2));
      log("temp3="+Utility.compactClassName(temp2));

which prints the following.....
const[18]=c Lmod/dummy/DummyClass; 
inst=org.apache.bcel.classfile.ConstantNameAndType

temp=c Lmod/dummy/DummyClass;

temp2=Lmod/dummy/DummyClass;

temp3=Lmod.dummy.DummyClass;

I am just trying to get the mod.dummy.DummyClass string.  how do I do so?  If I 
uncomment the temp2a above it breaks because of other ConstantNameAndTypes like 
the following message when I uncomment temp2a above.....

const[18]=<init> ()V inst=org.apache.bcel.classfile.ConstantNameAndType

temp=<init> ()V

temp2=()V

E

Time: 2.244

There was 1 error:

1) 
testLocalVarDepend(net.sf.antcontrib.design.VerifyDesignTest)C:\ROOT\views\sfviews\ant-contrib2\test\resources\design\verifydesign.xml:102:
 org.apache.bcel.classfile.ClassFormatException: Invalid method signature: ()V

at org.apache.tools.ant.Task.perform(Task.java:373)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at 
net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTest.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)

Caused by: org.apache.bcel.classfile.ClassFormatException: Invalid method 
signature: ()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:189)

at 
net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:151)

at 
net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesign.java:135)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:93)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

... 21 more

--- Nested Exception ---

org.apache.bcel.classfile.ClassFormatException: Invalid method signature: ()V

at org.apache.bcel.classfile.Utility.typeOfSignature(Utility.java:1024)

at net.sf.antcontrib.design.VerifyDesign.processConstant(VerifyDesign.java:189)

at 
net.sf.antcontrib.design.VerifyDesign.processConstantPool(VerifyDesign.java:151)

at 
net.sf.antcontrib.design.VerifyDesign.verifyClassAdheresToDesign(VerifyDesign.java:135)

at net.sf.antcontrib.design.VerifyDesign.execute(VerifyDesign.java:93)

at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)

at org.apache.tools.ant.Task.perform(Task.java:364)

at org.apache.tools.ant.Target.execute(Target.java:341)

at org.apache.tools.ant.Target.performTasks(Target.java:369)

at org.apache.tools.ant.Project.executeTarget(Project.java:1214)

at org.apache.tools.ant.BuildFileTest.executeTarget(BuildFileTest.java:232)

at 
net.sf.antcontrib.design.VerifyDesignTest.testLocalVarDepend(VerifyDesignTest.java:116)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at net.sf.antcontrib.design.VerifyDesignTest.main(VerifyDesignTest.java:205)

thanks for any help,

dean

Reply via email to