KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > strongtyper > ManagerGenerator


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, is permitted provided that the following conditions are met: -
6  * Redistributions of source code must retain the above copyright notice, this
7  * list of conditions and the following disclaimer. - Redistributions in binary
8  * form must reproduce the above copyright notice, this list of conditions and
9  * the following disclaimer in the documentation and/or other materials
10  * provided with the distribution. - All advertising materials mentioning
11  * features or use of this software must display the following acknowledgment:
12  * "This product includes Djeneric." - Products derived from this software may
13  * not be called "Djeneric" nor may "Djeneric" appear in their names without
14  * prior written permission of Genimen BV. - Redistributions of any form
15  * whatsoever must retain the following acknowledgment: "This product includes
16  * Djeneric."
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS"
19  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21  * ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV, DJENERIC.ORG, OR CONTRIBUTORS
22  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28  * POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.strongtyper;
31
32 public class ManagerGenerator extends Generator
33 {
34   public ManagerGenerator()
35   {
36   }
37
38   public String JavaDoc getPackageName()
39   {
40     return getImplPackageName();
41   }
42
43   public String JavaDoc getClassName()
44   {
45     return getManagerClassName() + (isAbstract() ? getGeneratedSuffix() : "");
46   }
47
48   public String JavaDoc getCode() throws Exception JavaDoc
49   {
50     StringBuffer JavaDoc code = new StringBuffer JavaDoc(5000);
51     if (getPackageName().trim().length() > 0) code.append("package " + getPackageName() + ";\n\n");
52
53     code.append("import " + getItfPackageName() + ".*;\n");
54
55     code.append("import com.genimen.djeneric.repository.*;\n" + "import com.genimen.djeneric.repository.rdbms.*;\n"
56                 + "import com.genimen.djeneric.repository.exceptions.*;\n\n");
57
58     code.append(StrongTyper.getRegenerationTags(1));
59
60     code
61         .append("\n"
62                 + "public class "
63                 + getClassName()
64                 + " extends RdbmsPersistenceManager\n"
65                 + "{\n"
66                 + " public "
67                 + getClassName()
68                 + "(DjRepositoryDescriptor rdesc) throws DjenericException\n"
69                 + " {\n"
70                 + " super(null, rdesc);\n"
71                 + " }\n"
72                 + "\n"
73                 + " public "
74                 + getClassName()
75                 + "(DjMessenger msg, DjRepositoryDescriptor rdesc, String repositoryUser, String repositoryPassword) throws DjenericException\n"
76                 + " {\n" + " super(msg, rdesc, repositoryUser, repositoryPassword);\n" + " }\n" + "\n"
77                 + " public DjSession createSession() throws " + getExceptionClassName() + "\n" + " {\n" + " try\n"
78                 + " {\n" + " " + getSessionClassName() + " ses = new " + getSessionClassName() + "(this);\n"
79                 + " ses.setCommitAllowed(isCommitAllowed());\n" + "\n" + " return ses;\n" + " }\n"
80                 + " catch(Exception x)\n" + " {\n" + " throw new " + getExceptionClassName() + "(x);\n"
81                 + " }\n" + " }\n" + "\n" + " public " + getSessionInterfaceName() + " create"
82                 + getSessionInterfaceName() + "() throws " + getExceptionClassName() + "\n" + " { \n" + " return ("
83                 + getSessionClassName() + ") createSession();\n" + " }\n");
84
85     code.append(StrongTyper.getRegenerationTags(0));
86     code.append("}\n");
87
88     return code.toString();
89   }
90
91 }
Popular Tags