/*   Generated by AspectJ version 1.0.1 */
package LoD;
import java.util.*;

public class Checker {
  public final void after0$ajc(Object thisObject, Object targetObject, 
      org.aspectj.lang.JoinPoint.StaticPart thisJoinPointStaticPart) {
    if (AllowedTargets.hasAspect(thisObject)) {
      AllowedTargets at = AllowedTargets.aspectOf(thisObject);
      HashSet allowedTargets = at.targets;
      if (allowedTargets.contains(targetObject)) return;
    } 
    if (thisObject == null || targetObject == null) return;
    HashSet top = this.aspectOf$method_call().hs;
    if (top.contains(targetObject)) return;
    System.out.println("Violation Found at " + thisJoinPointStaticPart.getSourceLocation(
        ).getFileName() + ":" + thisJoinPointStaticPart.getSourceLocation().getLine() + ":" + 
        thisJoinPointStaticPart.getSourceLocation().getColumn());
  } 

  public Checker() {
    super();
  } 
  public static Checker aspectInstance;
  public static Checker aspectOf() {
    return Checker.aspectInstance;
  } 

  public static boolean hasAspect() {
    return Checker.aspectInstance != null;
  } 

  private Controlflow aspectOf$method_call() {
    AllowedTargets.cflow$ajc0.push(new org.aspectj.runtime.CFlow());
    try {
      Arguments.cflow$ajc1.push(new org.aspectj.runtime.CFlow());
      try {
        Controlflow.cflow$ajc2.push(new org.aspectj.runtime.CFlow());
        try {
          return Controlflow.aspectOf();
        } finally {
          Controlflow.cflow$ajc2.pop();
        } 
      } finally {
        Arguments.cflow$ajc1.pop();
      } 
    } finally {
      AllowedTargets.cflow$ajc0.pop();
    } 
  } 

  static {
    Checker.aspectInstance = new Checker();
  } 

}