package lawOfDemeter.classform; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.CodeSignature; import lawOfDemeter.Any; import java.util.*; /** * @authors David H. Lorenz and Pengcheng Wu * @version 0.4, 12/19/02 */ aspect Arguments extends Perscope { pointcut Perscope(): Any.MethodExecution() || Any.ConstructorExecution(); protected List getSuppliers(JoinPoint.StaticPart ejsp, JoinPoint.StaticPart jsp) { Class thisClass = jsp.getSignature().getDeclaringType(); List parameterTypes = new ArrayList(); parameterTypes.add(thisClass); parameterTypes.addAll( Arrays.asList(((CodeSignature)jsp. getSignature()).getParameterTypes())); return parameterTypes; } }