KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > aop > joinpoint > MethodCalledByConstructorInvocationWrapper


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.joinpoint;
23
24 import org.jboss.aop.Advisor;
25 import org.jboss.aop.advice.Interceptor;
26 import org.jboss.aop.metadata.MetaDataResolver;
27 import org.jboss.aop.metadata.SimpleMetaData;
28
29 import java.lang.reflect.Constructor JavaDoc;
30 import java.lang.reflect.Method JavaDoc;
31 import java.util.Map JavaDoc;
32
33 /**
34  * Comment
35  *
36  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
37  * @version $Revision: 44098 $
38  *
39  **/

40 public class MethodCalledByConstructorInvocationWrapper extends MethodCalledByConstructorInvocation
41 {
42    private static final long serialVersionUID = 4578273471486761147L;
43    MethodCalledByConstructorInvocation wrapped;
44
45    public MethodCalledByConstructorInvocationWrapper(MethodCalledByConstructorInvocation wrapped, Interceptor[] interceptors)
46    {
47       super(interceptors);
48       this.wrapped = wrapped;
49    }
50
51    public Object JavaDoc getMetaData(Object JavaDoc group, Object JavaDoc attr)
52    {
53       return wrapped.getMetaData(group, attr);
54    }
55
56    public Object JavaDoc invokeNext() throws Throwable JavaDoc
57    {
58       if (interceptors != null && currentInterceptor < interceptors.length)
59       {
60          try
61          {
62             return interceptors[currentInterceptor++].invoke(this);
63          }
64          finally
65          {
66             // so that interceptors like clustering can reinvoke down the chain
67
currentInterceptor--;
68          }
69       }
70       try
71       {
72          return wrapped.invokeNext();
73       }
74       finally
75       {
76          responseContextInfo = wrapped.getResponseContextInfo();
77       }
78    }
79
80    public MetaDataResolver getInstanceResolver()
81    {
82       return wrapped.getInstanceResolver();
83    }
84
85    public Object JavaDoc[] getArguments()
86    {
87       return wrapped.getArguments();
88    }
89
90    public void setArguments(Object JavaDoc[] arguments)
91    {
92       wrapped.setArguments(arguments);
93    }
94
95    public Constructor JavaDoc getCalling()
96    {
97       return wrapped.getCalling();
98    }
99
100    public Method JavaDoc getCalledMethod()
101    {
102       return wrapped.getCalledMethod();
103    }
104
105    public Map JavaDoc getResponseContextInfo()
106    {
107       return wrapped.getResponseContextInfo();
108    }
109
110    public void addResponseAttachment(Object JavaDoc key, Object JavaDoc val)
111    {
112       wrapped.addResponseAttachment(key, val);
113    }
114
115    public void setResponseContextInfo(Map JavaDoc responseContextInfo)
116    {
117       wrapped.setResponseContextInfo(responseContextInfo);
118    }
119
120    public Object JavaDoc getResponseAttachment(Object JavaDoc key)
121    {
122       return wrapped.getResponseAttachment(key);
123    }
124
125    public void setMetaData(SimpleMetaData data)
126    {
127       wrapped.setMetaData(data);
128    }
129
130    public Advisor getAdvisor()
131    {
132       return wrapped.getAdvisor();
133    }
134
135    public Object JavaDoc getTargetObject()
136    {
137       return wrapped.getTargetObject();
138    }
139
140    public void setTargetObject(Object JavaDoc targetObject)
141    {
142       wrapped.setTargetObject(targetObject);
143    }
144
145    public Invocation copy()
146    {
147       MethodCalledByConstructorInvocationWrapper invocation = new MethodCalledByConstructorInvocationWrapper((MethodCalledByConstructorInvocation)wrapped.copy(), interceptors);
148       invocation.currentInterceptor = this.currentInterceptor;
149       return invocation;
150    }
151
152 }
153
Popular Tags