Hi to everyone. I'm using BCEL from some days for my thesis so I've still a lot of things to learn about bytecode instrumentation. I want to ask you two things: 1) How can I create in the bytecode I'm producing, an instruction corresponding to the statement Classname.class? I imagine that if I use Class.forName(classname) would be ok but it doesn't work for primitive type.
2) There some way to bring an object instance I have in the method wich does the instrumentation into the instrumented method? I try to explain it better: I have a method with this signature public static void instrument(ClassGen cgen, Method mth, BAnnotation an In it I want to modify the bytecode of Method mth to insert a call to an external method and I want to pass to this second method the BAnnotation object (that is more or less a java annotation but don't think to much about it). Since now I've thought to the following solutions: - instead of passing the annotation to the external method, I could extract the meta-data from the annotation, insert them in the instrumented method as local variables (I wouldn't have any problem cuase the metadata will be String or primitive) and call a new external method who takes the data in that form. I think it could work but with complex annotations will be an hard work to create all the needed bytecode and specially it will be hard in future to modify it - I could insert in the created bytecode the needed calls to retrieve via reflection the annotation and then I could pass the object obtained to the external method. Not so complicated as the first solution but everytime I have to search for the right annotation. - I'm not sure it could be done with annotation (well I'm not even sure it can be done with other object) but I could serialize my BAnnotation object pass to the external method the info to the deserialize it I would be glad if someone have some suggestions or opinions on what I've written above. Unfortunately my english is not so good, and I'm not sure that what I've written is clear... Thanks for reading bye! Andrea^^ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
