summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoraclement <aclement>2007-12-07 13:32:26 +0000
committeraclement <aclement>2007-12-07 13:32:26 +0000
commit197607d2bba1edb98804f13e1c16cf1b53e7d828 (patch)
treecb0ad60d88426f791d9e5eaf29ed40b4cd64207a
parent61be6d639ffdd7feea0c3f88b09e00a3a3a84035 (diff)
downloadaspectj-1_5_4rc1.tar.gz
aspectj-1_5_4rc1.zip
PointcutDoctor javadoc - 193065V1_5_4rc1
-rw-r--r--weaver/src/org/aspectj/weaver/CustomMungerFactory.java43
1 files changed, 40 insertions, 3 deletions
diff --git a/weaver/src/org/aspectj/weaver/CustomMungerFactory.java b/weaver/src/org/aspectj/weaver/CustomMungerFactory.java
index 67f0dfc1a..3ff37a423 100644
--- a/weaver/src/org/aspectj/weaver/CustomMungerFactory.java
+++ b/weaver/src/org/aspectj/weaver/CustomMungerFactory.java
@@ -14,8 +14,45 @@ package org.aspectj.weaver;
import java.util.Collection;
+/**
+ * <p>
+ * This interface is introduced to support tools like PointcutDoctor.
+ * </p>
+ * <p>
+ * A CustomMungerFactory is used to create ShadowMungers and/or
+ * ConcreteTypeMungers so that an extender can extract extra information during
+ * the weaving process.
+ * </p>
+ * <p>
+ * A CustomMungerFactory is assigned to a weaver through its AjCompiler in
+ * extenders' code, and gets invoked by the weaver right before the weaving
+ * starts. The custom shadow/type mungers being created will be added into the
+ * shadow/type munger list in the weaver and participate the weaving process.
+ * For example, the match method of each custom shadow munger will be called
+ * against each shadow.
+ * </p>
+ * @author lintonye
+ *
+ */
public interface CustomMungerFactory {
- public Collection/*ShadowMunger*/ createCustomShadowMungers(ResolvedType aspectType);
- public Collection/*ConcreteTypeMunger*/ createCustomTypeMungers(ResolvedType aspectType);
-// public Collection<Declare> createCustomDeclares(ResolvedType aspectType);
+
+ /**
+ * @param aspectType
+ * @return a Collection&lt;ShadowMunger&gt; of custom shadow mungers for the
+ * given aspect
+ */
+ public Collection/* ShadowMunger */createCustomShadowMungers(
+ ResolvedType aspectType);
+
+ /**
+ * @param aspectType
+ * @return a Collection&lt;ConcreteTypeMunger&gt; of custom type mungers for the
+ * given aspect
+ */
+ public Collection/* ConcreteTypeMunger */createCustomTypeMungers(
+ ResolvedType aspectType);
+
+ public Collection/* ShadowMunger */getAllCreatedCustomShadowMungers();
+
+ public Collection/* ConcreteTypeMunger */getAllCreatedCustomTypeMungers();
}