/* Generated by AspectJ version 1.0.1 */ class Foo implements LoD.AllowedTargets.AJC_HasAspect { private transient LoD.AllowedTargets LoD_AllowedTargets__aspect; static org.aspectj.runtime.reflect.Factory ajc$JPF; private static org.aspectj.lang.JoinPoint.StaticPart f$ajcjp1; private static org.aspectj.lang.JoinPoint.StaticPart length$ajcjp2; private static org.aspectj.lang.JoinPoint.StaticPart println$ajcjp3; private static org.aspectj.lang.JoinPoint.StaticPart run$ajcjp4; private static org.aspectj.lang.JoinPoint.StaticPart new$ajcjp5; private static org.aspectj.lang.JoinPoint.StaticPart new$ajcjp6; private static org.aspectj.lang.JoinPoint.StaticPart new$ajcjp7; private static org.aspectj.lang.JoinPoint.StaticPart run$ajcjp8; private static org.aspectj.lang.JoinPoint.StaticPart println$ajcjp9; private static org.aspectj.lang.JoinPoint.StaticPart run$ajcjp10; private static org.aspectj.lang.JoinPoint.StaticPart main$ajcjp11; Foo f; public Foo(Foo f) { super(); { LoD.AllowedTargets.bind$ajc(this); } this.f$field_set(this, f); } public Foo() { super(); { LoD.AllowedTargets.bind$ajc(this); } } public void run(String s) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.run$ajcjp10, this, this, new java.lang.Object[] {s}); { if (!LoD.AllowedTargets.cflow$ajc0.isValid()) { LoD.AllowedTargets.bind$ajc(this); } } final boolean ajc_enter_ecflow_0 = !LoD.Controlflow.cflow$ajc2.isValid(); if (ajc_enter_ecflow_0) LoD.Controlflow.eachcflow$ajc.push(new LoD.Controlflow()); try { { if (!LoD.Arguments.cflow$ajc1.isValid()) LoD.Arguments.aspectInstance.before1$ajc1( thisJoinPoint); } int length = this.length$method_call(s); if (this.f.f == null) this.println$method_call(System.out, "null"); this.run$method_call(this.f.f, "A"); } finally { if (ajc_enter_ecflow_0) LoD.Controlflow.eachcflow$ajc.pop(); } } public static void main(String[] args) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.main$ajcjp11, null, null, new java.lang.Object[] {args}); final boolean ajc_enter_ecflow_1 = !LoD.Controlflow.cflow$ajc2.isValid(); if (ajc_enter_ecflow_1) LoD.Controlflow.eachcflow$ajc.push(new LoD.Controlflow()); try { { if (!LoD.Arguments.cflow$ajc1.isValid()) LoD.Arguments.aspectInstance.before1$ajc1( thisJoinPoint); } Foo aFoo = Foo.new$constructor_call1(Foo.new$constructor_call0(Foo.new$constructor_call())); Foo.run$method_call0(aFoo, "Hello world"); Foo.println$method_call0(System.out, ">>Expected to report a violation at Foo.java:10"); } finally { if (ajc_enter_ecflow_1) LoD.Controlflow.eachcflow$ajc.pop(); } } public LoD.AllowedTargets LoD_AllowedTargets__aspect_ajget() { return this.LoD_AllowedTargets__aspect; } public LoD.AllowedTargets LoD_AllowedTargets__aspect_ajset(LoD.AllowedTargets newValue) { return this.LoD_AllowedTargets__aspect = newValue; } public synchronized void LoD_AllowedTargets_bind() { if (this.LoD_AllowedTargets__aspect_ajget() != null) return; this.LoD_AllowedTargets__aspect_ajset(new LoD.AllowedTargets()); } public LoD.AllowedTargets LoD_AllowedTargets_getAspect() { return this.LoD_AllowedTargets__aspect_ajget(); } private Foo f$field_set(Foo target, Foo newValue) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.f$ajcjp1, this, target, new java.lang.Object[] {newValue}); LoD.DirectPart.aspectInstance.before0$ajc1(this, thisJoinPoint); return target.f = newValue; } private int length$method_call(String target) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.length$ajcjp2, this, target, new java.lang.Object[] {}); try { { int _return = target.length(); LoD.ReturnValue.aspectInstance.afterReturning0$ajc1(new Integer(_return), thisJoinPoint); return _return; } } finally { LoD.Checker.aspectInstance.after0$ajc(this, target, Foo.length$ajcjp2); } } private void println$method_call(java.io.PrintStream target, final String __0) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.println$ajcjp3, this, target, new java.lang.Object[] {__0}); try { if (true) target.println(__0); LoD.ReturnValue.aspectInstance.afterReturning0$ajc1(((Object)(null)), thisJoinPoint); } finally { LoD.Checker.aspectInstance.after0$ajc(this, target, Foo.println$ajcjp3); } } private void run$method_call(Foo target, final String s) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.run$ajcjp4, this, target, new java.lang.Object[] {s}); try { if (true) target.run(s); LoD.ReturnValue.aspectInstance.afterReturning0$ajc1(((Object)(null)), thisJoinPoint); } finally { LoD.Checker.aspectInstance.after0$ajc(this, target, Foo.run$ajcjp4); } } private static Foo new$constructor_call() { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.new$ajcjp7, null, null, new java.lang.Object[] {}); LoD.LocallyConstructed.aspectInstance.before1$ajc1(thisJoinPoint); return new Foo(); } private static Foo new$constructor_call0(final Foo f) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.new$ajcjp6, null, null, new java.lang.Object[] {f}); LoD.LocallyConstructed.aspectInstance.before1$ajc1(thisJoinPoint); return new Foo(f); } private static Foo new$constructor_call1(final Foo f) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.new$ajcjp5, null, null, new java.lang.Object[] {f}); LoD.LocallyConstructed.aspectInstance.before1$ajc1(thisJoinPoint); return new Foo(f); } private static void run$method_call0(Foo target, final String s) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.run$ajcjp8, null, target, new java.lang.Object[] {s}); if (true) target.run(s); LoD.ReturnValue.aspectInstance.afterReturning0$ajc1(((Object)(null)), thisJoinPoint); } private static void println$method_call0(java.io.PrintStream target, final String __0) { final org.aspectj.lang.JoinPoint thisJoinPoint = org.aspectj.runtime.reflect.Factory.makeJP( Foo.println$ajcjp9, null, target, new java.lang.Object[] {__0}); if (true) target.println(__0); LoD.ReturnValue.aspectInstance.afterReturning0$ajc1(((Object)(null)), thisJoinPoint); } static { Foo.ajc$JPF = new org.aspectj.runtime.reflect.Factory("Foo.java", Foo.class); Foo.f$ajcjp1 = Foo.ajc$JPF.makeSJP("field-set", Foo.ajc$JPF.makeFieldSig("0-f-Foo-Foo-"), 5, 31); Foo.length$ajcjp2 = Foo.ajc$JPF.makeSJP("method-call", Foo.ajc$JPF.makeMethodSig("1-length-java.lang.String----int-"), 9, 19); Foo.println$ajcjp3 = Foo.ajc$JPF.makeSJP("method-call", Foo.ajc$JPF.makeMethodSig("1-println-java.io.PrintStream-java.lang.String:-__0:--void-"), 11, 10); Foo.run$ajcjp4 = Foo.ajc$JPF.makeSJP("method-call", Foo.ajc$JPF.makeMethodSig("1-run-Foo-java.lang.String:-s:--void-"), 12, 7); Foo.new$ajcjp5 = Foo.ajc$JPF.makeSJP("constructor-call", Foo.ajc$JPF.makeConstructorSig("1--Foo-Foo:-f:--"), 17, 18); Foo.new$ajcjp6 = Foo.ajc$JPF.makeSJP("constructor-call", Foo.ajc$JPF.makeConstructorSig("1--Foo-Foo:-f:--"), 17, 26); Foo.new$ajcjp7 = Foo.ajc$JPF.makeSJP("constructor-call", Foo.ajc$JPF.makeConstructorSig("1--Foo----"), 17, 34); Foo.run$ajcjp8 = Foo.ajc$JPF.makeSJP("method-call", Foo.ajc$JPF.makeMethodSig("1-run-Foo-java.lang.String:-s:--void-"), 18, 7); Foo.println$ajcjp9 = Foo.ajc$JPF.makeSJP("method-call", Foo.ajc$JPF.makeMethodSig("1-println-java.io.PrintStream-java.lang.String:-__0:--void-"), 19, 7); Foo.run$ajcjp10 = Foo.ajc$JPF.makeSJP("method-execution", Foo.ajc$JPF.makeMethodSig("1-run-Foo-java.lang.String:-s:--void-"), 7, 4); Foo.main$ajcjp11 = Foo.ajc$JPF.makeSJP("method-execution", Foo.ajc$JPF.makeMethodSig("9-main-Foo-[Ljava.lang.String;:-args:--void-"), 16, 4); } }