Browse Source

287613/315820: testcode

tags/V1_6_9RC2
aclement 14 years ago
parent
commit
98cb0219ae

+ 16
- 0
tests/bugs169/pr287613/DAMethod1.java View File

@@ -0,0 +1,16 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot {}

class Person {
public void foo() {}
public boolean bar() {return false;}
public String getString() { return null; }
public boolean isSet() { return false; }
public void isNotReturningBoolean() { }
}

aspect DAMethod1 {
declare @method: (* *.get*()) || (boolean *.is*()): @Annot;
}

+ 29
- 0
tests/bugs169/pr287613/DAMethod2.java View File

@@ -0,0 +1,29 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot {}

@Retention(RetentionPolicy.RUNTIME)
@interface Foo {}

class Person {
@Foo
public void foo() {}
@Foo
public boolean bar() {return false;}
@Foo
public String getString() { return null; }
@Foo
public boolean isSet() { return false; }
@Foo
public void isNotReturningBoolean() { }

public void getin() {}
}

aspect DAMethod2 {

declare @method: !(* *.get*()) && !(* aspectOf(..)) && !(* hasAspect(..)): @Annot;
declare @method: !@Foo * *(..) && !(* aspectOf(..)) && !(* hasAspect(..)): @Annot;
}

+ 53
- 0
tests/bugs169/pr287613/Decaf1.java View File

@@ -0,0 +1,53 @@
import java.lang.annotation.*;
import java.lang.reflect.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot1 {}
@Retention(RetentionPolicy.RUNTIME)
@interface Annot2 {}
@Retention(RetentionPolicy.RUNTIME)
@interface Annot3 {}

class Target {
public static void main(String[] argv) throws Exception {
System.out.println("Field one");
printAnnotations(A.class.getDeclaredField("one"));
printAnnotations(B.class.getDeclaredField("one"));
System.out.println("Field two");
printAnnotations(A.class.getDeclaredField("two"));
printAnnotations(B.class.getDeclaredField("two"));
System.out.println("Field three");
printAnnotations(A.class.getDeclaredField("two"));
printAnnotations(B.class.getDeclaredField("two"));
}
public static void printAnnotations(Field field) {
Annotation[] annos = field.getAnnotations();
if (annos==null || annos.length==0) {
System.out.println("no annotations");
} else {
for (Annotation anno: annos) {
System.out.print(anno+" ");
}
System.out.println();
}
}
}

class A {
public int one;
public String two;
public float three;
}

class B {
public int one;
public String two;
public float three;
}

aspect DeclareAnnot {
declare @field: (int A.one) || (int B.one): @Annot1;
declare @field: (String two) && !(* B.*): @Annot2;
declare @field: !(* one) && !(* two): @Annot3;
}

+ 30
- 0
tests/bugs169/pr287613/DeclareAnnot.java View File

@@ -0,0 +1,30 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot {}

aspect DeclareAnnot {
// declare @method: * *.get*() || boolean *.is*(): @Annot;

// declare @field: (String *.*) || (boolean *.*) : @Annot;
// declare @field: (String *.*) && (boolean *.*) : @Annot;
// declare @field: (String *.*) && !(boolean *.*) : @Annot;
declare @field: ((String *.*) || !(String *.*)) && !(boolean *.*) : @Annot;
declare @field: String *.* : @Annot;

/*
declare @constructor: Person.new() || Person.new(*) : @Annot;

declare @method: * *.get*() && boolean *.is*(): @Annot;

declare @field: String *.* && boolean *.* : @Annot;

declare @constructor: Person.new() && Person.new(*) : @Annot;

declare @method: !(* *.get*()): @Annot;

declare @field: !(String *.*) : @Annot;

declare @constructor: !(Person.new()) : @Annot;
*/
}

+ 24
- 0
tests/bugs169/pr287613/DeclareAnnotMethodCtor.java View File

@@ -0,0 +1,24 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot {}

class Person {}
aspect DeclareAnnot {
declare @constructor: (Person.new()) || (Person.new(*)) : @Annot;


// declare @method: (* *.get*()) && (boolean *.is*()): @Annot;

/*
declare @field: String *.* && boolean *.* : @Annot;

declare @constructor: Person.new() && Person.new(*) : @Annot;

declare @method: !(* *.get*()): @Annot;

declare @field: !(String *.*) : @Annot;

declare @constructor: !(Person.new()) : @Annot;
*/
}

+ 53
- 0
tests/bugs169/pr287613/Target.java View File

@@ -0,0 +1,53 @@
import java.lang.annotation.*;
import java.lang.reflect.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Annot1 {}
@Retention(RetentionPolicy.RUNTIME)
@interface Annot2 {}
@Retention(RetentionPolicy.RUNTIME)
@interface Annot3 {}

public class Target {
public static void main(String[] argv) throws Exception {
System.out.println("Field one");
printAnnotations(A.class.getDeclaredField("one"));
printAnnotations(B.class.getDeclaredField("one"));
System.out.println("Field two");
printAnnotations(A.class.getDeclaredField("two"));
printAnnotations(B.class.getDeclaredField("two"));
System.out.println("Field three");
printAnnotations(A.class.getDeclaredField("three"));
printAnnotations(B.class.getDeclaredField("three"));
}
public static void printAnnotations(Field field) {
Annotation[] annos = field.getAnnotations();
if (annos==null || annos.length==0) {
System.out.println("no annotations");
} else {
for (Annotation anno: annos) {
System.out.print(anno+" ");
}
System.out.println();
}
}
}

class A {
public int one;
public String two;
public float three;
}

class B {
public int one;
public String two;
public float three;
}

aspect DeclareAnnot {
declare @field: (int A.one) || (int B.one): @Annot1;
declare @field: (String two) && !(* B.*): @Annot2;
declare @field: !(* one) && !(* two): @Annot3;
}

+ 26
- 0
tests/bugs169/pr315820/MultiAnno.java View File

@@ -0,0 +1,26 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Foo {}

@Retention(RetentionPolicy.RUNTIME)
@interface Bar {
String value() default "abc";
}

aspect A {
declare @method: void MultiAnno.m(): @Foo @Bar;
declare @field: int MultiAnno.i: @Bar @Foo;
declare @type: MultiAnno: @Bar("ABC") @Foo;
declare @constructor: MultiAnno.new(): @Foo @Bar("def");
}

public class MultiAnno {
public MultiAnno() {}
public int i;
public static void main(String[]argv) throws Exception {
System.out.println(MultiAnno.class.getDeclaredMethod("m").getAnnotations()[0]);
}
public void m() {
}
}

+ 32
- 0
tests/bugs169/pr315820/MultiAnno2.java View File

@@ -0,0 +1,32 @@
import java.lang.annotation.*;

@Retention(RetentionPolicy.RUNTIME)
@interface Foo {}

@Retention(RetentionPolicy.RUNTIME)
@interface Bar {
String value() default "abc";
}

@Retention(RetentionPolicy.RUNTIME)
@interface Goo {
int value() default 44;
}

aspect A {
// declare @method: void MultiAnno.m(): @Foo @Bar;
declare @field: int MultiAnno2.i: @Bar("XYCZ") @Foo @Goo(23);
// declare @type: MultiAnno: @Bar("ABC") @Foo;
// declare @constructor: MultiAnno.new(): @Foo @Bar("def");
}

public class MultiAnno2 {
public MultiAnno2() {}
public int i;
public static void main(String[]argv) throws Exception {
System.out.println(MultiAnno2.class.getDeclaredField("i").getAnnotations()[0]);
System.out.println(MultiAnno2.class.getDeclaredField("i").getAnnotations()[1]);
}
public void m() {
}
}

Loading…
Cancel
Save