KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > test > aop > dynamicgenadvisor > MetadataInterceptor


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.test.aop.dynamicgenadvisor;
23
24 import java.util.ArrayList JavaDoc;
25
26 import org.jboss.aop.advice.Interceptor;
27 import org.jboss.aop.joinpoint.FieldInvocation;
28 import org.jboss.aop.joinpoint.Invocation;
29 import org.jboss.aop.joinpoint.MethodInvocation;
30
31 /**
32  *
33  * @author <a HREF="kabir.khan@jboss.com">Kabir Khan</a>
34  * @version $Revision$
35  */

36 public class MetadataInterceptor implements Interceptor
37 {
38    //For instances
39
public static ArrayList JavaDoc lastDefaultMetadata = new ArrayList JavaDoc();
40    public static ArrayList JavaDoc lastClassMetadata = new ArrayList JavaDoc();
41    public static ArrayList JavaDoc lastMethodMetadata = new ArrayList JavaDoc();
42    public static ArrayList JavaDoc lastFieldMetadata = new ArrayList JavaDoc();
43    
44    public static boolean intercepted;
45
46    public String JavaDoc getName()
47    {
48       return "MetadataInterceptor";
49    }
50
51    public Object JavaDoc invoke(Invocation invocation) throws Throwable JavaDoc
52    {
53       System.out.println("MetadataInterceptor Intercepting");
54       intercepted = true;
55       
56       Object JavaDoc meta = invocation.getMetaData("TEST", "default");
57       if (meta != null) lastDefaultMetadata.add(meta);
58       
59       meta = invocation.resolveClassMetaData("TEST", "class");
60       if (meta != null) lastClassMetadata.add(meta);
61
62       if (invocation instanceof FieldInvocation)
63       {
64          meta = invocation.getMetaData("TEST", "fm");
65          if (meta != null) lastFieldMetadata.add(meta);
66       }
67       else if (invocation instanceof MethodInvocation)
68       {
69          meta = invocation.getMetaData("TEST", "fm");
70          if (meta != null) lastMethodMetadata.add(meta);
71       }
72       
73       return invocation.invokeNext();
74    }
75    
76    public static void clear()
77    {
78       lastClassMetadata.clear();
79       lastDefaultMetadata.clear();
80       lastFieldMetadata.clear();
81       lastMethodMetadata.clear();
82       intercepted = false;
83    }
84
85 }
86
Popular Tags