diff options
author | acolyer <acolyer> | 2005-11-21 22:05:46 +0000 |
---|---|---|
committer | acolyer <acolyer> | 2005-11-21 22:05:46 +0000 |
commit | 735d94f91a02e08bf5a1a86185b9318de4bd4319 (patch) | |
tree | cb061b2d84a35814df99d88569ff89ce5a2ba172 /tests/java5 | |
parent | e5c3e7214edf3cd2ec84bc1e2b20ba93887b013a (diff) | |
download | aspectj-735d94f91a02e08bf5a1a86185b9318de4bd4319.tar.gz aspectj-735d94f91a02e08bf5a1a86185b9318de4bd4319.zip |
tests and fix for pr114332 - reflection api not detecting abstract itdms.
Diffstat (limited to 'tests/java5')
-rw-r--r-- | tests/java5/reflection/Billing.aj | 29 | ||||
-rw-r--r-- | tests/java5/reflection/ReflectBilling.java | 18 |
2 files changed, 47 insertions, 0 deletions
diff --git a/tests/java5/reflection/Billing.aj b/tests/java5/reflection/Billing.aj new file mode 100644 index 000000000..0c9923ea4 --- /dev/null +++ b/tests/java5/reflection/Billing.aj @@ -0,0 +1,29 @@ +public aspect Billing { + + public Customer Connection.payer; + + /** + * Connections give the appropriate call rate + */ + public abstract long Connection.callRate(); + + public long LongDistance.callRate() { return 1; } + public long Local.callRate() { return 2; } + + /** + * Customers have a bill paying aspect with state + */ + public long Customer.totalCharge = 0; + + public void Customer.addCharge(long charge){ + totalCharge += charge; + } +} + +class Customer {} + +abstract class Connection {} + +class LongDistance extends Connection {} + +class Local extends Connection {} diff --git a/tests/java5/reflection/ReflectBilling.java b/tests/java5/reflection/ReflectBilling.java new file mode 100644 index 000000000..c93292cb1 --- /dev/null +++ b/tests/java5/reflection/ReflectBilling.java @@ -0,0 +1,18 @@ +import org.aspectj.lang.reflect.*; + +public class ReflectBilling { + + public static void main(String[] args) { + AjType<Billing> billingType = AjTypeSystem.getAjType(Billing.class); + InterTypeMethodDeclaration[] itdms = billingType.getDeclaredITDMethods(); + for(InterTypeMethodDeclaration itdm : itdms) { + System.out.println(itdm); + } + InterTypeFieldDeclaration[] itdfs = billingType.getDeclaredITDFields(); + for(InterTypeFieldDeclaration itdf : itdfs) { + System.out.println(itdf); + } + } + + +}
\ No newline at end of file |