KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > aop > advice > DynamicCFlowDefinition


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.advice;
23
24 import org.jboss.aop.pointcut.DynamicCFlow;
25 import org.jboss.util.xml.XmlLoadable;
26 import org.w3c.dom.Element JavaDoc;
27
28 /**
29  * Comment
30  *
31  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
32  * @version $Revision: 37406 $
33  */

34 public class DynamicCFlowDefinition
35 {
36    private String JavaDoc name;
37    private String JavaDoc className;
38    private Element JavaDoc element;
39    private Class JavaDoc pClass;
40
41    public DynamicCFlowDefinition(Element JavaDoc element, String JavaDoc className, String JavaDoc name)
42    {
43       this.className = className;
44       this.element = element;
45       this.name = name;
46    }
47
48    public String JavaDoc getName()
49    {
50       return name;
51    }
52
53    public String JavaDoc getClassName()
54    {
55       return className;
56    }
57
58    public DynamicCFlow create()
59    {
60       if (pClass == null)
61       {
62          try
63          {
64             pClass = Thread.currentThread().getContextClassLoader().loadClass(className);
65          }
66          catch (ClassNotFoundException JavaDoc e)
67          {
68             throw new RuntimeException JavaDoc("dynamic cflow class not found: " + className);
69          }
70       }
71       try
72       {
73          DynamicCFlow cflow = (DynamicCFlow) pClass.newInstance();
74          if (cflow instanceof XmlLoadable)
75          {
76             ((XmlLoadable) cflow).importXml(element);
77          }
78          return cflow;
79       }
80       catch (InstantiationException JavaDoc e)
81       {
82          throw new RuntimeException JavaDoc(e);
83       }
84       catch (IllegalAccessException JavaDoc e)
85       {
86          throw new RuntimeException JavaDoc(e);
87       }
88
89    }
90
91 }
92
Popular Tags