KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > aop > ConByMethodInfo


1 /*
2   * JBoss, Home of Professional Open Source
3   * Copyright 2005, JBoss Inc., and individual contributors as indicated
4   * by the @authors tag. See the copyright.txt in the distribution for a
5   * full listing of individual contributors.
6   *
7   * This is free software; you can redistribute it and/or modify it
8   * under the terms of the GNU Lesser General Public License as
9   * published by the Free Software Foundation; either version 2.1 of
10   * the License, or (at your option) any later version.
11   *
12   * This software is distributed in the hope that it will be useful,
13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15   * Lesser General Public License for more details.
16   *
17   * You should have received a copy of the GNU Lesser General Public
18   * License along with this software; if not, write to the Free
19   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21   */

22 package org.jboss.aop;
23
24 import java.lang.reflect.Constructor JavaDoc;
25 import java.lang.reflect.Method JavaDoc;
26
27 import org.jboss.aop.advice.Interceptor;
28 import org.jboss.aop.joinpoint.ConstructorCalledByMethodJoinpoint;
29 import org.jboss.aop.joinpoint.Joinpoint;
30 import org.jboss.aop.util.MethodHashing;
31
32 /**
33  *
34  * @author <a HREF="kabir.khan@jboss.com">Kabir Khan</a>
35  * @version $Revision: 56933 $
36  */

37 public class ConByMethodInfo extends CallerConstructorInfo
38 {
39    private final long callingMethodHash;
40    private final Method JavaDoc callingMethod;
41
42    /**
43     * Create a new ConByMethodJoinPont.
44     *
45     * @param c
46     * @param in
47     */

48    public ConByMethodInfo(Advisor advisor, Class JavaDoc calledClass, long callingMethodHash, Constructor JavaDoc c, long calledConHash, Method JavaDoc wrappingMethod, Interceptor[] in)
49    {
50       // FIXME ConByMethodJoinPont constructor
51
super(advisor, calledClass, c, calledConHash, wrappingMethod, in, advisor.getClazz());
52       try
53       {
54          this.callingMethodHash = callingMethodHash;
55          callingMethod = MethodHashing.findMethodByHash(getCallingClass(), callingMethodHash);
56       }
57       catch (Exception JavaDoc e)
58       {
59          throw new RuntimeException JavaDoc(e);
60       }
61    }
62
63    /*
64     * For copying
65     */

66    protected ConByMethodInfo(ConByMethodInfo other)
67    {
68       super(other);
69       this.callingMethodHash = other.callingMethodHash;
70       this.callingMethod = other.callingMethod;
71    }
72    
73    protected Joinpoint internalGetJoinpoint()
74    {
75       return new ConstructorCalledByMethodJoinpoint(callingMethod, getConstructor());
76    }
77    
78    public JoinPointInfo copy()
79    {
80       return new ConByMethodInfo(this);
81    }
82
83    public String JavaDoc toString()
84    {
85       StringBuffer JavaDoc sb = new StringBuffer JavaDoc("Constructor called by Method");
86       sb.append("[");
87       sb.append("calling=" + callingMethod);
88       sb.append(",called=" + getConstructor());
89       sb.append("]");
90       return sb.toString();
91    }
92
93    public long getCallingMethodHash()
94    {
95       return callingMethodHash;
96    }
97
98    public Method JavaDoc getCallingMethod()
99    {
100       return callingMethod;
101    }
102 }
103
Popular Tags