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 operations dealing with code generation of the servicemodule
20: * distribution layer. It assumes that servicemodule layer interface has been generated elsewhere.
21: * The distribution layer consists of client and server code for all services and eventpublishers found in the servicemodule */
22: public interface BSServiceDistributionGenerator {
23: /** Naming URL of the component */
24: public static final String COMPONENT_URL = "component:/com.metaboss.sdlctools.services.codegeneration.BSServiceDistributionGenerator";
25:
26: /** Generates servicemodule distribution implementation sourcecode for the particular system within particular enterprise
27: * @param pGenerationDirectoryPath directory to generate code to
28: * @param pSystemRef system to generate code for
29: */
30: public void generateImplementationSourceCodeForSystem(
31: String pGenerationDirectoryPath, String pSystemRef)
32: throws BSException;
33:
34: /** Generates servicemodule distribution implementation sourcecode for the particular servicemodule within particular enterprise
35: * @param pGenerationDirectoryPath directory to generate code to
36: * @param pServicemoduleRef servicemodule to generate code for
37: */
38: public void generateImplementationSourceCodeForServicemodule(
39: String pGenerationDirectoryPath, String pServicemoduleRef)
40: throws BSException;
41:
42: /** Returns the name of the implementation package for distribution of the services. This package is the
43: * root package for the package hierarchy generated by distribution generator. This hierarchy
44: * includes separate services client and services server packages (must be separate for use in jndi mapping).
45: * It also may include other subpackages (really depends on generator syntax)
46: * @param pServicemoduleRef servicemodule to return package name for
47: */
48: public String getServicesImplementationPackageName(
49: String pServicemoduleRef) throws BSException;
50:
51: /** Returns the name of the client implementation package for distribution of the services (for use in jndi mapping)
52: * client is the package offered to others as implementation of the servicemodule interface. Can be the same as server package
53: * @param pServicemoduleRef servicemodule to generate code for
54: */
55: public String getServicesClientImplementationPackageName(
56: String pServicemoduleRef) throws BSException;
57:
58: /** Returns the name of the server implementation package for distribution of the services (for use in jndi mapping)
59: * server is the package from which connection to the servicemodule is made. Can be the same as client package
60: * @param pServicemoduleRef servicemodule to generate code for
61: */
62: public String getServicesServerImplementationPackageName(
63: String pServicemoduleRef) throws BSException;
64:
65: /** Returns the name of the implementation package for distribution of the event publishers. This package is the
66: * root package for the package hierarchy generated by distribution generator. This hierarchy
67: * includes separate event publishers client and event publishers server packages (must be separate for use in jndi mapping).
68: * It also may include other subpackages (really depends on generator syntax)
69: * @param pServicemoduleRef servicemodule to return package name for
70: */
71: public String getEventPublishersImplementationPackageName(
72: String pServicemoduleRef) throws BSException;
73:
74: /** Returns the name of the client implementation package for distribution of the event publishers (for use in jndi mapping)
75: * client is the package offered to others as implementation of the servicemodule interface. Can be the same as server package
76: * @param pServicemoduleRef servicemodule to generate code for
77: */
78: public String getEventPublishersClientImplementationPackageName(
79: String pServicemoduleRef) throws BSException;
80:
81: /** Returns the name of the server implementation package for distribution of the event publishers (for use in jndi mapping)
82: * server is the package from which connection to the servicemodule is made. Can be the same as client package
83: * @param pServicemoduleRef servicemodule to generate code for
84: */
85: public String getEventPublishersServerImplementationPackageName(
86: String pServicemoduleRef) throws BSException;
87:
88: /** @return array of names of adapters, which are required by this adapter,
89: * may be null or zero length array if this proxy generator is not relying on any adapter. */
90: public String[] getRequiredAdapters() throws BSException;
91: }
|