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;
  }
}

