/*
* Copyright 2005 the original author or authors.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- */
-
+ */
package org.wamblee.concurrency.spring;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
+
import org.wamblee.concurrency.Lock;
+
/**
- * Locking advice. This automatically synchronized an object using a given lock.
+ * Locking advice. This automatically synchronized an object using a given
+ * lock.
*
* @author Erik Brakkee
*/
public class LockAdvice implements MethodInterceptor {
-
/**
- * Lock to use.
+ * Lock to use.
*/
- private Lock lock;
-
- /**
+ private Lock lock;
+
+/**
* Constructs lock advice.
* @param aLock Lock to use.
*/
- public LockAdvice(Lock aLock) {
- lock = aLock;
+ public LockAdvice(Lock aLock) {
+ lock = aLock;
}
-
+
/* (non-Javadoc)
* @see org.aopalliance.intercept.MethodInterceptor#invoke(org.aopalliance.intercept.MethodInvocation)
*/
- public Object invoke(MethodInvocation aInvocation) throws Throwable {
+ /**
+ * DOCUMENT ME!
+ *
+ * @param aInvocation DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ *
+ * @throws Throwable DOCUMENT ME!
+ */
+ public Object invoke(MethodInvocation aInvocation)
+ throws Throwable {
lock.acquire();
- try {
- return aInvocation.proceed();
- } finally {
+
+ try {
+ return aInvocation.proceed();
+ } finally {
lock.release();
}
}
-
}