01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04:
05: package com.tc.aspectwerkz.definition.deployer;
06:
07: import com.tc.aspectwerkz.DeploymentModel;
08:
09: /**
10: * TODO document class
11: *
12: * @author Jonas Bonér
13: */
14: public interface AspectModuleDeployer {
15:
16: /**
17: * Creates, registers and returns an aspect definition builder.
18: * Use-case: Get an aspect builder and then use it to add advice and pointcut builders to build up a full aspect
19: * definintion programatically.
20: *
21: * @param aspectClass
22: * @param scope
23: * @param containerClassName
24: * @return a newly registered aspect builder
25: */
26: public AspectDefinitionBuilder newAspectBuilder(String aspectClass,
27: DeploymentModel scope, String containerClassName);
28:
29: /**
30: * Creates and adds a new mixin builder to the deployment set.
31: *
32: * @param aspectClass
33: * @param deploymentModel
34: * @param pointcut
35: */
36: public void addMixin(String aspectClass,
37: DeploymentModel deploymentModel, String pointcut,
38: boolean isTransient);
39:
40: /**
41: * Returns class loader
42: */
43: public ClassLoader getClassLoader();
44:
45: }
|