01: // THIS SOFTWARE IS PROVIDED BY SOFTARIS PTY.LTD. AND OTHER METABOSS
02: // CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
03: // BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
04: // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SOFTARIS PTY.LTD.
05: // OR OTHER METABOSS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
06: // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
07: // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
08: // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
09: // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
10: // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
11: // EVEN IF SOFTARIS PTY.LTD. OR OTHER METABOSS CONTRIBUTORS ARE ADVISED OF THE
12: // POSSIBILITY OF SUCH DAMAGE.
13: //
14: // Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
15: package com.metaboss.sdlctools.services.codegeneration;
16:
17: import com.metaboss.enterprise.bs.BSException;
18:
19: /** This interface offers the facility to generate any artefact from the model.
20: * It expects to be given an xml definition of what has to be generated. The definition
21: * is governed by the schema. */
22: public interface BSGenericGenerator {
23: /** Naming URL of the component */
24: public static final String COMPONENT_URL = "component:/com.metaboss.sdlctools.services.codegeneration.BSGenericGenerator";
25:
26: /** Generates any number of any kinds of files for the default model dictated by the generation plan
27: * with the given name. The subdirectory with the same name as the specified plan name must exist on the
28: * path specified in com.metaboss.generation.PluginPath property which is usually set in the
29: * codegeneration.properties config file.
30: * @param pGenerationDirectoryPath directory to generate code to
31: * @param pGenerationPlanName the logical name of the generation plan to invoke
32: * @param pGenerationContext simple map of the values comprising generation context */
33: public void generateDirectoryAsPerPlan(
34: String pGenerationDirectoryPath,
35: String pGenerationPlanName, java.util.Map pGenerationContext)
36: throws BSException;
37:
38: /** Generates any number of any kinds of files for the required list of elements dictated by the generation plan
39: * with the given name. The subdirectory with the same name as the specified plan name must exist on the
40: * path specified in com.metaboss.generation.PluginPath property which is usually set in the
41: * codegeneration.properties config file.
42: * @param pGenerationDirectoryPath directory to generate code to
43: * @param pGenerationPlanName the logical name of the generation plan to invoke
44: * @param pRootModelElements the collection of RefBaseObjects to use as the root elements when processing the generation plan
45: * @param pGenerationContext simple map of the values comprising generation context */
46: public void generateDirectoryAsPerPlan(
47: String pGenerationDirectoryPath,
48: String pGenerationPlanName,
49: java.util.Collection pRootModelElements,
50: java.util.Map pGenerationContext) throws BSException;
51:
52: /** Generates any number of any kinds of files for the given element from the default model
53: * dictated by the generation plan with the given name. The subdirectory with the same name as the specified plan name must exist on the
54: * path specified in com.metaboss.generation.PluginPath property which is usually set in the
55: * codegeneration.properties config file.
56: * @param pGenerationDirectoryPath directory to generate code to
57: * @param pGenerationPlanName the logical name of the generation plan to invoke
58: * @param pMetaBossModelElementRef the reference of the MetaBoss model element, which must exist in the default model
59: * @param pGenerationContext simple map of the values comprising generation context */
60: public void generateDirectoryAsPerPlanForMetaBossModelElement(
61: String pGenerationDirectoryPath,
62: String pGenerationPlanName,
63: String pMetaBossModelElementRef,
64: java.util.Map pGenerationContext) throws BSException;
65:
66: /** Generates any number of any kinds of files for the default model dictated by the generation plan
67: * with the given name. Returns the byte array containing the zipped up source. This version of the method
68: * will use the whole model extent as an input to the generation.
69: * @param pGenerationPlanName the logical name of the generation plan to invoke
70: * @param pGenerationContext simple map of the values comprising generation context */
71: public byte[] generateZipAsPerPlan(String pGenerationPlanName,
72: java.util.Map pGenerationContext) throws BSException;
73:
74: /** Generates any number of any kinds of files for the required list of elements dictated by the generation plan
75: * with the given name. Returns the byte array containing the zipped up source. This version of the method
76: * will use the whole model extent as an input to the generation.
77: * @param pGenerationPlanName the logical name of the generation plan to invoke
78: * @param pRootModelElements the collection of RefBaseObjects to use as the root elements when processing the generation plan
79: * @param pGenerationContext simple map of the values comprising generation context */
80: public byte[] generateZipAsPerPlan(String pGenerationPlanName,
81: java.util.Collection pRootModelElements,
82: java.util.Map pGenerationContext) throws BSException;
83:
84: /** Generates any number of any kinds of files for the given element from the default model
85: * dictated by the generation plan with the given name. Returns the byte array containing the zipped up source.
86: * This version of the method will expect the default model to be the instance of the MetaBoss Meta Model and
87: * will use the element with the specified ref as the root element for generation
88: * @param pGenerationPlanName the logical name of the generation plan to invoke
89: * @param pMetaBossModelElementRef the reference of the MetaBoss model element, which must exist in the default model
90: * @param pGenerationContext simple map of the values comprising generation context */
91: public byte[] generateZipAsPerPlanForMetaBossModelElement(
92: String pGenerationPlanName,
93: String pMetaBossModelElementRef,
94: java.util.Map pGenerationContext) throws BSException;
95: }
|