KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > aspects > concurrent > MutexAspectFactory


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.aspects.concurrent;
23
24 import org.jboss.aop.advice.AspectFactory;
25 import org.jboss.aop.Advisor;
26 import org.jboss.aop.InstanceAdvisor;
27 import org.jboss.aop.joinpoint.Joinpoint;
28 import org.jboss.aop.joinpoint.MethodJoinpoint;
29
30 /**
31  * comment
32  *
33  * @author <a HREF="mailto:bill@jboss.org">Bill Burke</a>
34  */

35 public class MutexAspectFactory implements AspectFactory
36 {
37    public Object JavaDoc createPerVM()
38    {
39       throw new IllegalStateException JavaDoc("THIS SCOPE NOT USABLE");
40    }
41
42    public Object JavaDoc createPerClass(Advisor advisor)
43    {
44       throw new IllegalStateException JavaDoc("THIS SCOPE NOT USABLE");
45    }
46
47    public Object JavaDoc createPerInstance(Advisor advisor, InstanceAdvisor instanceAdvisor)
48    {
49       throw new IllegalStateException JavaDoc("THIS SCOPE NOT USABLE");
50    }
51
52    public Object JavaDoc createPerJoinpoint(Advisor advisor, Joinpoint jp)
53    {
54       MethodJoinpoint mj = (MethodJoinpoint)jp;
55       MutexLocked props = (MutexLocked)advisor.resolveAnnotation(mj.getMethod(), MutexLocked.class);
56       if (props.timeout() < 0)
57       {
58          return new MutexAspect.BlockingMutex();
59       }
60       else if (props.timeout() == 0)
61       {
62          return new MutexAspect.TryLockMutex();
63       }
64       else
65       {
66          return new MutexAspect.TimeoutMutex(props);
67       }
68    }
69
70    public Object JavaDoc createPerJoinpoint(Advisor advisor, InstanceAdvisor instanceAdvisor, Joinpoint jp)
71    {
72       throw new IllegalStateException JavaDoc("THIS SCOPE NOT USABLE");
73    }
74
75    public String JavaDoc getName()
76    {
77       return MutexAspectFactory.class.getName();
78    }
79 }
80
Popular Tags