01: package org.andromda.cartridges.deployment.metafacades;
02:
03: import java.util.ArrayList;
04: import java.util.Collection;
05: import java.util.Iterator;
06:
07: import org.andromda.cartridges.deployment.profile.DeploymentProfile;
08: import org.andromda.cartridges.deployment.psm.ant.JarTaskCall;
09: import org.andromda.metafacades.uml.DependencyFacade;
10:
11: /**
12: * MetafacadeLogic implementation for
13: * org.andromda.cartridges.deployment.metafacades.ArtifactFacade.
14: *
15: * @see org.andromda.cartridges.deployment.metafacades.ArtifactFacade
16: */
17: public class ArtifactFacadeLogicImpl extends ArtifactFacadeLogic {
18:
19: public ArtifactFacadeLogicImpl(
20: org.omg.uml.foundation.core.Artifact metaObject,
21: String context) {
22: super (metaObject, context);
23: }
24:
25: /**
26: * @see org.andromda.cartridges.deployment.metafacades.ArtifactFacade#getWrappedPackages()
27: */
28: protected java.util.Collection handleGetWrappedPackages() {
29: ArrayList result = new ArrayList();
30:
31: Collection dependencies = getSourceDependencies();
32: for (Iterator iter = dependencies.iterator(); iter.hasNext();) {
33: DependencyFacade element = (DependencyFacade) iter.next();
34: if (element
35: .hasStereotype(DeploymentProfile.STEREOTYPE_WRAPS)) {
36: result.add(element.getTargetElement());
37: }
38: }
39:
40: return result;
41: }
42:
43: /*
44: * (non-Javadoc)
45: *
46: * @see org.andromda.cartridges.deployment.metafacades.ArtifactFacadeLogic#handleGetTasksForCompilationPhase()
47: */
48: protected Collection handleGetTasksForCompilationPhase() {
49: ArrayList result = new ArrayList();
50:
51: Collection wrappedPackages = getWrappedPackages();
52: for (Iterator iter = wrappedPackages.iterator(); iter.hasNext();) {
53: DeployedPackageFacade element = (DeployedPackageFacade) iter
54: .next();
55: result.addAll(element.getTasksForCompilationPhase());
56: }
57:
58: return result;
59: }
60:
61: /*
62: * (non-Javadoc)
63: *
64: * @see org.andromda.cartridges.deployment.metafacades.ArtifactFacadeLogic#handleGetTasksForDeploymentPhase()
65: */
66: protected Collection handleGetTasksForDeploymentPhase() {
67: ArrayList packages = new ArrayList();
68:
69: // find all packages which deploy in this artifact
70: Collection wrappedPackages = getWrappedPackages();
71: for (Iterator iter = wrappedPackages.iterator(); iter.hasNext();) {
72: DeployedPackageFacade element = (DeployedPackageFacade) iter
73: .next();
74: packages.add(element.getFullyQualifiedName());
75: }
76:
77: // jar all packages into one jar
78: JarTaskCall taskCall = new JarTaskCall(packages, getName(),
79: "jar");
80: ArrayList result = new ArrayList(1);
81: result.add(taskCall);
82: return result;
83: }
84:
85: }
|