1 package org.andromda.cartridges.interfaces;
2
3 import java.net.URL;
4 import java.util.ArrayList;
5 import java.util.HashMap;
6 import java.util.List;
7 import java.util.Map;
8
9 /***
10 * A default implementation of the ICartridgeDescriptor interface.
11 *
12 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor
13 * @see org.andromda.cartridges.interfaces.CartridgeXmlParser
14 * @author <a href="http://www.mbohlen.de">Matthias Bohlen</a>
15 */
16 public class DefaultCartridgeDescriptor implements ICartridgeDescriptor
17 {
18 private String cartridgeName;
19 private HashMap properties = new HashMap();
20 private ArrayList supportedStereotypes = new ArrayList();
21 private ArrayList outlets = new ArrayList();
22 private ArrayList templates = new ArrayList();
23 private URL definitionURL;
24 private String cartridgeClassName = null;
25
26 /***
27 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getCartridgeName()
28 * @return String
29 */
30 public String getCartridgeName()
31 {
32 return cartridgeName;
33 }
34
35 /***
36 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getProperties()
37 */
38 public Map getProperties()
39 {
40 return properties;
41 }
42
43 /***
44 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getSupportedStereotypes()
45 */
46 public List getSupportedStereotypes()
47 {
48 return supportedStereotypes;
49 }
50
51 /***
52 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getOutlets()
53 */
54 public List getOutlets()
55 {
56 return outlets;
57 }
58
59 /***
60 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getTemplateConfigurations()
61 */
62 public List getTemplateConfigurations()
63 {
64 return templates;
65 }
66
67 /***
68 * Adds a property to the list of properties of this cartridge. Properties
69 * may be used to designate implementations for architectural aspects.
70 *
71 * @param propertyName the name of the property
72 * @param propertyValue the value of the property
73 */
74 public void addProperty(String propertyName, String propertyValue)
75 {
76 properties.put(propertyName, propertyValue);
77 }
78
79 /***
80 * Adds a stereotype to the list of supported stereotypes of this cartridge.
81 *
82 * @param stereotypeName the name of the stereotype
83 */
84 public void addSupportedStereotype(String stereotypeName)
85 {
86 supportedStereotypes.add(stereotypeName);
87 }
88
89 /***
90 * Sets the name of the cartridge.
91 * @param cartridgeName The cartridgeName to set
92 */
93 public void setCartridgeName(String cartridgeName)
94 {
95 this.cartridgeName = cartridgeName;
96 }
97
98 /***
99 * Adds an outlet to the list of defined outlets. An outlet is a short name
100 * for a path where output files will be written. A later step associates
101 * this name with a concrete physical directory name.
102 *
103 * @param string the outlet identifier
104 */
105 public void addOutlet(String outletname)
106 {
107 outlets.add(outletname);
108 }
109
110 /***
111 * Adds an item to the list of defined template configurations.
112 *
113 * @param templateConfiguration the new configuration to add
114 */
115 public void addTemplateConfiguration(TemplateConfiguration templateConfiguration)
116 {
117 templates.add(templateConfiguration);
118 }
119
120 /***
121 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#getDefinitionURL()
122 */
123 public URL getDefinitionURL()
124 {
125 return this.definitionURL;
126 }
127 /***
128 * @see org.andromda.cartridges.interfaces.ICartridgeDescriptor#setDefinitionURL(java.net.URL)
129 */
130 public void setDefinitionURL(URL url)
131 {
132 this.definitionURL = url;
133 }
134
135 /***
136 * Returns the cartridgeClassName.
137 * @return String
138 */
139 public String getCartridgeClassName()
140 {
141 return cartridgeClassName;
142 }
143
144 /***
145 * Sets the cartridgeClassName.
146 * @param cartridgeClassName The cartridgeClassName to set
147 */
148 public void setCartridgeClassName(String cartridgeClassName)
149 {
150 this.cartridgeClassName = cartridgeClassName;
151 }
152
153 }