From 197607d2bba1edb98804f13e1c16cf1b53e7d828 Mon Sep 17 00:00:00 2001 From: aclement Date: Fri, 7 Dec 2007 13:32:26 +0000 Subject: [PATCH] PointcutDoctor javadoc - 193065 --- .../aspectj/weaver/CustomMungerFactory.java | 43 +++++++++++++++++-- 1 file 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; +/** + *

+ * This interface is introduced to support tools like PointcutDoctor. + *

+ *

+ * A CustomMungerFactory is used to create ShadowMungers and/or + * ConcreteTypeMungers so that an extender can extract extra information during + * the weaving process. + *

+ *

+ * 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. + *

+ * @author lintonye + * + */ public interface CustomMungerFactory { - public Collection/*ShadowMunger*/ createCustomShadowMungers(ResolvedType aspectType); - public Collection/*ConcreteTypeMunger*/ createCustomTypeMungers(ResolvedType aspectType); -// public Collection createCustomDeclares(ResolvedType aspectType); + + /** + * @param aspectType + * @return a Collection<ShadowMunger> of custom shadow mungers for the + * given aspect + */ + public Collection/* ShadowMunger */createCustomShadowMungers( + ResolvedType aspectType); + + /** + * @param aspectType + * @return a Collection<ConcreteTypeMunger> of custom type mungers for the + * given aspect + */ + public Collection/* ConcreteTypeMunger */createCustomTypeMungers( + ResolvedType aspectType); + + public Collection/* ShadowMunger */getAllCreatedCustomShadowMungers(); + + public Collection/* ConcreteTypeMunger */getAllCreatedCustomTypeMungers(); } -- 2.39.5