KickJava   Java API By Example, From Geeks To Geeks.

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


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 modification, is permitted
5  * provided that the following conditions are met:
6  * - Redistributions of source code must retain the above copyright notice, this list of conditions
7  * and the following disclaimer.
8  * - Redistributions in binary form must reproduce the above copyright notice, this list of
9  * conditions and the following disclaimer in the documentation and/or other materials
10  * provided with the distribution.
11  * - All advertising materials mentioning features or use of this software must display the
12  * following acknowledgment: "This product includes Djeneric."
13  * - Products derived from this software may not be called "Djeneric" nor may
14  * "Djeneric" appear in their names without prior written permission of Genimen BV.
15  * - Redistributions of any form whatsoever must retain the following acknowledgment: "This
16  * product includes 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,
22  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
23  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
24  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */

30 package com.genimen.djeneric.tools.strongtyper;
31
32 import com.genimen.djeneric.repository.DjExtent;
33 import com.genimen.djeneric.repository.DjPersistenceManager;
34
35 public class CursorGenerator extends Generator
36 {
37   DjExtent _extent;
38   DjPersistenceManager _mgr;
39
40   public CursorGenerator(DjPersistenceManager mgr)
41   {
42     _mgr = mgr;
43   }
44
45   public DjExtent getExtent()
46   {
47     return _extent;
48   }
49
50   public void setExtent(DjExtent extent)
51   {
52     _extent = extent;
53   }
54
55   public String JavaDoc getCursorInterfaceName()
56   {
57     return getCursorInterfaceName(getExtent());
58   }
59
60   public String JavaDoc getClassName()
61   {
62     return getCursorClassName(getExtent()) + (isAbstract() ? getGeneratedSuffix() : "");
63   }
64
65   public String JavaDoc getPackageName()
66   {
67     return getImplPackageName();
68   }
69
70   public String JavaDoc getCode() throws Exception JavaDoc
71   {
72     StringBuffer JavaDoc code = new StringBuffer JavaDoc(5000);
73     if (getPackageName().trim().length() > 0) code.append("package " + getPackageName() + ";\n\n");
74
75     code.append("import " + getItfPackageName() + ".*;\n");
76     code.append("import com.genimen.djeneric.repository.*;\n\n"
77                 + "import com.genimen.djeneric.repository.exceptions.*;\n");
78     code.append(StrongTyper.getRegenerationTags(1));
79     code.append("public class " + getClassName());
80     code.append(" implements " + getCursorInterfaceName());
81
82     code.append("\n{\n");
83
84     code.append(" private DjCursor _cursor;\n");
85
86     code.append("\n protected " + getClassName() + "(DjCursor cursor) throws DjenericException\n" + " {\n"
87                 + " _cursor = cursor;\n" + " }\n");
88
89     code.append(" public " + getInterfaceName(getExtent()) + " getNext() throws " + getExceptionClassName() + "\n"
90                 + " {\n" + " try\n" + " {\n" + " return (" + getInterfaceName(getExtent())
91                 + ") _cursor.getNext();\n" + " }\n" + " catch(Exception x)\n" + " {\n" + " throw new "
92                 + getExceptionClassName() + "(x);\n" + " }\n" + " }\n\n");
93
94     code.append("\n public void close() throws " + getExceptionClassName() + "\n" + " {\n" + " try\n" + " {\n"
95                 + " _cursor.close();\n" + " }\n" + " catch(Exception x)\n" + " {\n" + " throw new "
96                 + getExceptionClassName() + "(x);\n" + " }\n" + " }\n\n");
97
98     code.append(StrongTyper.getRegenerationTags(0));
99     code.append("}\n");
100
101     return code.toString();
102   }
103
104 }
Popular Tags