KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > fr > emn > info > eaop > event > ConstructorReturn


1 /* ----------------------------------------------------------------------------
2  * EAOP 1.0, 2002-12-19
3  * (c) 2002 Remi Douence, Mario Sudholt; OBASCO group; EMN/INRIA; France
4  * THIS SOFTWARE IS PROVIDED AS IS AND WITHOUT ANY WARRANTY
5   -------------------------------------------------------------------------- */

6
7 package fr.emn.info.eaop.event;
8
9 import java.util.*;
10 import java.lang.reflect.*;
11 import java.io.*;
12
13 /**
14  * This class/event gathers information when a method returns.
15  *
16  * @author MS
17  * @version 1.0
18  */

19 public class ConstructorReturn extends Event {
20
21     public Object JavaDoc receiver;
22     public Constructor constructor;
23     public Object JavaDoc[] args;
24     public int stackLevel;
25
26     public ConstructorReturn(Thread JavaDoc thread, Object JavaDoc returnValue,
27          Object JavaDoc receiver, Constructor constructor, Object JavaDoc[] args) {
28     super(thread);
29     this.receiver = receiver;
30     this.constructor = constructor;
31     this.args = args;
32     // remi: hack in order to get the stack level, aka number of lines in:
33
// new Exception().printStackTrace();
34
this.stackLevel = 0;
35     StringWriter stringWriter = new StringWriter();
36     PrintWriter printWriter = new PrintWriter(stringWriter, true);
37     new Exception JavaDoc().printStackTrace(printWriter);
38     String JavaDoc string = stringWriter.toString();
39     int pos = 0;
40     while ((pos = string.indexOf('\n', pos + 1)) > -1) {
41         this.stackLevel++;
42     }
43     }
44
45     public String JavaDoc toString() {
46     String JavaDoc result = "ConstructorReturn ";
47     result += this.toString2();
48     return result;
49     }
50
51     public String JavaDoc toString2() {
52     String JavaDoc result = receiver + "." + constructor.getName() + "(";
53
54     for (int i=0; i<args.length; i++) {
55         result += args[i] + ",";
56     }
57
58     result += ")";
59     result += super.toString();
60     return result;
61     }
62 }
63
Popular Tags