001: /*
002: * sqlc 1
003: * SQL Compiler
004: * Copyright (C) 2003 Hammurapi Group
005: *
006: * This program is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2 of the License, or (at your option) any later version.
010: *
011: * This program is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019: *
020: * URL: http://www.hammurapi.biz/products/sqlc/index.html
021: * e-Mail: support@hammurapi.biz
022: */
023: package biz.hammurapi.sql.metadata;
024:
025: import java.io.Serializable;
026: import java.util.ArrayList;
027: import java.util.Iterator;
028: import java.util.List;
029:
030: import biz.hammurapi.util.Parameter;
031: import biz.hammurapi.util.VisitableBase;
032: import biz.hammurapi.util.Visitor;
033:
034: /**
035: * @author Pavel Vlasov
036: * @version $Revision: 1.6 $
037: */
038: public class KeyDescriptor extends VisitableBase implements
039: Serializable, Parameter {
040: /**
041: * Comment for <code>serialVersionUID</code>
042: */
043: private static final long serialVersionUID = 8657116011034263868L;
044: private Metadata metadata;
045:
046: KeyDescriptor(Metadata metadata) {
047: this .metadata = metadata;
048: }
049:
050: private String dbName;
051: private String javaName;
052: private List columns = new ArrayList();
053:
054: private String pkCatalog;
055: private String pkSchema;
056: private String pkTable;
057:
058: private String fkCatalog;
059: private String fkSchema;
060: private String fkTable;
061:
062: private short updateRule;
063: private short deleteRule;
064:
065: public short getDeleteRule() {
066: return deleteRule;
067: }
068:
069: public void setDeleteRule(short deleteRule) {
070: this .deleteRule = deleteRule;
071: }
072:
073: public short getUpdateRule() {
074: return updateRule;
075: }
076:
077: public void setUpdateRule(short updateRule) {
078: this .updateRule = updateRule;
079: }
080:
081: public String getType() {
082: return metadata.getTableDescriptor(getPkCatalog(),
083: getPkSchema(), getPkTable()).getEntityType();
084: }
085:
086: public String getName() {
087: return javaName;
088: }
089:
090: public String getPkType() {
091: return metadata.getTableDescriptor(getPkCatalog(),
092: getPkSchema(), getPkTable()).getPkType();
093: }
094:
095: /**
096: * @param dbName The dbName to set.
097: */
098: void setDbName(String dbName) {
099: this .dbName = dbName;
100: }
101:
102: /**
103: * @return Returns the dbName.
104: */
105: public String getDbName() {
106: return dbName;
107: }
108:
109: /**
110: * @param javaName The javaName to set.
111: */
112: void setName(String javaName) {
113: this .javaName = javaName;
114: }
115:
116: /**
117: * @return Returns the columns.
118: */
119: public List getColumns() {
120: return columns;
121: }
122:
123: /**
124: * @param pkCatalog The pkCatalog to set.
125: */
126: void setPkCatalog(String pkCatalog) {
127: this .pkCatalog = pkCatalog;
128: }
129:
130: /**
131: * @return Returns the pkCatalog.
132: */
133: public String getPkCatalog() {
134: return pkCatalog;
135: }
136:
137: /**
138: * @param pkSchema The pkSchema to set.
139: */
140: void setPkSchema(String pkSchema) {
141: this .pkSchema = pkSchema;
142: }
143:
144: /**
145: * @return Returns the pkSchema.
146: */
147: public String getPkSchema() {
148: return pkSchema;
149: }
150:
151: /**
152: * @param pkTable The pkTable to set.
153: */
154: void setPkTable(String pkTable) {
155: this .pkTable = pkTable;
156: }
157:
158: /**
159: * @return Returns the pkTable.
160: */
161: public String getPkTable() {
162: return pkTable;
163: }
164:
165: /**
166: * @param fkCatalog The fkCatalog to set.
167: */
168: void setFkCatalog(String fkCatalog) {
169: this .fkCatalog = fkCatalog;
170: }
171:
172: /**
173: * @return Returns the fkCatalog.
174: */
175: public String getFkCatalog() {
176: return fkCatalog;
177: }
178:
179: /**
180: * @param fkSchema The fkSchema to set.
181: */
182: void setFkSchema(String fkSchema) {
183: this .fkSchema = fkSchema;
184: }
185:
186: /**
187: * @return Returns the fkSchema.
188: */
189: public String getFkSchema() {
190: return fkSchema;
191: }
192:
193: /**
194: * @param fkTable The fkTable to set.
195: */
196: void setFkTable(String fkTable) {
197: this .fkTable = fkTable;
198: }
199:
200: /**
201: * @return Returns the fkTable.
202: */
203: public String getFkTable() {
204: return fkTable;
205: }
206:
207: public void acceptChildren(Visitor visitor) {
208: Iterator it = columns.iterator();
209: while (it.hasNext()) {
210: visitor.visit(it.next());
211: }
212: }
213: }
|