aboutsummaryrefslogtreecommitdiffstats
path: root/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java')
-rw-r--r--aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java187
1 files changed, 0 insertions, 187 deletions
diff --git a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java b/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java
deleted file mode 100644
index 77b30223f..000000000
--- a/aspectj5rt/java5-src/org/aspectj/internal/lang/reflect/AdviceImpl.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/* *******************************************************************
- * Copyright (c) 2005 Contributors.
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution and is available at
- * http://eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Adrian Colyer Initial implementation
- * ******************************************************************/
-package org.aspectj.internal.lang.reflect;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-
-import org.aspectj.lang.annotation.AdviceName;
-import org.aspectj.lang.reflect.Advice;
-import org.aspectj.lang.reflect.AdviceKind;
-import org.aspectj.lang.reflect.AjType;
-import org.aspectj.lang.reflect.AjTypeSystem;
-import org.aspectj.lang.reflect.PointcutExpression;
-
-/**
- * @author colyer
- *
- */
-public class AdviceImpl implements Advice {
-
- private static final String AJC_INTERNAL = "org.aspectj.runtime.internal";
-
- private final AdviceKind kind;
- private final Method adviceMethod;
- private PointcutExpression pointcutExpression;
- private boolean hasExtraParam = false;
- private Type[] genericParameterTypes;
- private AjType[] parameterTypes;
- private AjType[] exceptionTypes;
-
- protected AdviceImpl(Method method, String pointcut, AdviceKind type) {
- this.kind = type;
- this.adviceMethod = method;
- this.pointcutExpression = new PointcutExpressionImpl(pointcut);
- }
-
- protected AdviceImpl(Method method, String pointcut, AdviceKind type, String extraParamName) {
- this(method,pointcut,type);
- this.hasExtraParam = true;
- }
-
- public AjType getDeclaringType() {
- return AjTypeSystem.getAjType(adviceMethod.getDeclaringClass());
- }
-
- public Type[] getGenericParameterTypes() {
- if (this.genericParameterTypes == null) {
- Type[] genTypes = adviceMethod.getGenericParameterTypes();
- int syntheticCount = 0;
- for (Type t : genTypes) {
- if (t instanceof Class) {
- if (((Class)t).getPackage().getName().equals(AJC_INTERNAL)) syntheticCount++;
- }
- }
- this.genericParameterTypes = new Type[genTypes.length - syntheticCount];
- for (int i = 0; i < genericParameterTypes.length; i++) {
- if (genTypes[i] instanceof Class) {
- this.genericParameterTypes[i] = AjTypeSystem.getAjType((Class<?>)genTypes[i]);
- } else {
- this.genericParameterTypes[i] = genTypes[i];
- }
- }
- }
- return this.genericParameterTypes;
- }
-
- public AjType<?>[] getParameterTypes() {
- if (this.parameterTypes == null) {
- Class<?>[] ptypes = adviceMethod.getParameterTypes();
- int syntheticCount = 0;
- for(Class<?> c : ptypes) {
- if (c.getPackage().getName().equals(AJC_INTERNAL)) syntheticCount++;
- }
- this.parameterTypes = new AjType<?>[ptypes.length - syntheticCount];
- for (int i = 0; i < parameterTypes.length; i++) {
- this.parameterTypes[i] = AjTypeSystem.getAjType(ptypes[i]);
- }
- }
- return this.parameterTypes;
- }
-
- public AjType<?>[] getExceptionTypes() {
- if (this.exceptionTypes == null) {
- Class<?>[] exTypes = adviceMethod.getExceptionTypes();
- this.exceptionTypes = new AjType<?>[exTypes.length];
- for (int i = 0; i < exTypes.length; i++) {
- this.exceptionTypes[i] = AjTypeSystem.getAjType(exTypes[i]);
- }
- }
- return this.exceptionTypes;
- }
-
- public AdviceKind getKind() {
- return kind;
- }
-
- public String getName() {
- String adviceName = adviceMethod.getName();
- if (adviceName.startsWith("ajc$")) {
- adviceName = "";
- AdviceName name = adviceMethod.getAnnotation(AdviceName.class);
- if (name != null) adviceName = name.value();
- }
- return adviceName;
- }
-
- public PointcutExpression getPointcutExpression() {
- return pointcutExpression;
- }
-
- public String toString() {
- StringBuffer sb = new StringBuffer();
- if (getName().length() > 0) {
- sb.append("@AdviceName(\"");
- sb.append(getName());
- sb.append("\") ");
- }
- if (getKind() == AdviceKind.AROUND) {
- sb.append(adviceMethod.getGenericReturnType().toString());
- sb.append(" ");
- }
- switch(getKind()) {
- case AFTER:
- sb.append("after(");
- break;
- case AFTER_RETURNING:
- sb.append("after(");
- break;
- case AFTER_THROWING:
- sb.append("after(");
- break;
- case AROUND:
- sb.append("around(");
- break;
- case BEFORE:
- sb.append("before(");
- break;
- }
- AjType<?>[] ptypes = getParameterTypes();
- int len = ptypes.length;
- if (hasExtraParam) len--;
- for (int i = 0; i < len; i++) {
- sb.append(ptypes[i].getName());
- if (i+1 < len) sb.append(",");
- }
- sb.append(") ");
- switch(getKind()) {
- case AFTER_RETURNING:
- sb.append("returning");
- if (hasExtraParam) {
- sb.append("(");
- sb.append(ptypes[len-1].getName());
- sb.append(") ");
- }
- case AFTER_THROWING:
- sb.append("throwing");
- if (hasExtraParam) {
- sb.append("(");
- sb.append(ptypes[len-1].getName());
- sb.append(") ");
- }
- default: // no-op
- }
- AjType<?>[] exTypes = getExceptionTypes();
- if (exTypes.length > 0) {
- sb.append("throws ");
- for (int i = 0; i < exTypes.length; i++) {
- sb.append(exTypes[i].getName());
- if (i+1 < exTypes.length) sb.append(",");
- }
- sb.append(" ");
- }
- sb.append(": ");
- sb.append(getPointcutExpression().asString());
- return sb.toString();
- }
-
-}