001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041: package org.netbeans.modules.sql.framework.model;
042:
043: /**
044: * Extension of DBTable
045: */
046: public interface SQLDBTable extends DBTable, SQLCanvasObject, SQLObject {
047:
048: /** Constant for table metadata name tag.* */
049: public static final String TABLE_TAG = "dbTable"; // NOI18N
050:
051: /**
052: * Adds given SQLDBColumn to this table
053: *
054: * @param theColumn SQLDBColumn to be added
055: * @return true if addition succeeded
056: */
057: public boolean addColumn(SQLDBColumn theColumn);
058:
059: /**
060: * Clear catalog name override
061: */
062: public void clearOverride(boolean clearCatalogOverride,
063: boolean clearSchemaOverride);
064:
065: /**
066: * Copies information from given DBTable instance
067: *
068: * @param source DBTable from which to copy table info
069: */
070: public void copyFrom(DBTable source);
071:
072: /**
073: * Deletes all columns from this table
074: *
075: * @return true of deletion succeeded
076: */
077: public boolean deleteAllColumns();
078:
079: /**
080: * Deletes SQLDBColumn, if any, associated with the given column name.
081: *
082: * @param columnName column name of SQLDBColumn to delete
083: * @return true if deletion succeeded
084: */
085: public boolean deleteColumn(String columnName);
086:
087: /**
088: * get the alias name for this table
089: *
090: * @return alias name
091: */
092: public String getAliasName();
093:
094: /**
095: * Gets commit batch size for this db table.
096: *
097: * @return batch size for commits involving this table.
098: */
099: public int getBatchSize();
100:
101: /**
102: * Gets the flat file location runtime input name which is generate when a flat file
103: * table is added to collaboration. Use this name at runtime for file location passed
104: * by eInsight.
105: *
106: * @return name of runtime input argument for flat file location
107: */
108: public String getFlatFileLocationRuntimeInputName();
109:
110: /**
111: * get table fully qualified name including schema , catalog info
112: *
113: * @return fully qualified table name prefixed with alias
114: */
115: public String getFullyQualifiedName();
116:
117: public SQLObject getObject(String objectId);
118:
119: /**
120: * get table qualified name
121: *
122: * @return qualified table name prefixed with alias
123: */
124: public String getQualifiedName();
125:
126: public String getRuntimeArgumentName();
127:
128: /**
129: * Gets the user defined table name prefix
130: *
131: * @return user defined table
132: */
133: public String getTablePrefix();
134:
135: /**
136: * Gets concats tablename alias name
137: *
138: * @return String Unique name for the table
139: */
140: public String getUniqueTableName();
141:
142: /**
143: * Gets the user defined catalog name.
144: *
145: * @return user defined catalog name
146: */
147: public String getUserDefinedCatalogName();
148:
149: /**
150: * Gets the user defined schema name.
151: *
152: * @return user defined schema name
153: */
154: public String getUserDefinedSchemaName();
155:
156: /**
157: * Gets the user defined table name.
158: *
159: * @return user defined table name
160: */
161: public String getUserDefinedTableName();
162:
163: //RFE-102428
164: /**
165: * Gets the staging table name.
166: *
167: * @return staging table name
168: */
169: public String getStagingTableName();
170:
171: /**
172: * @return Returns the aliasUsed.
173: */
174: public boolean isAliasUsed();
175:
176: /**
177: * Indicates whether table is editable.
178: *
179: * @return true if table is editable, false otherwise
180: */
181: public boolean isEditable();
182:
183: /**
184: * Indicates whether table is selected.
185: *
186: * @return true if table is selected, false otherwise
187: */
188: public boolean isSelected();
189:
190: /**
191: * Indicates whether the fully-qualified form should be used whenever one resolves
192: * this table's name.
193: *
194: * @return true if fully-qualified form should be used, false otherwise
195: */
196: public boolean isUsingFullyQualifiedName();
197:
198: /**
199: * Override Catalog name
200: *
201: * @param nName
202: */
203: public void overrideCatalogName(String nName);
204:
205: /**
206: * Override Schema Name
207: *
208: * @param nName
209: */
210: public void overrideSchemaName(String nName);
211:
212: /**
213: * set the alias name for this table
214: *
215: * @param aName alias name
216: */
217: public void setAliasName(String aName);
218:
219: /**
220: * @param aliasUsed The aliasUsed to set.
221: */
222: public void setAliasUsed(boolean aliasUsed);
223:
224: /**
225: * Sets commit batch size for this db table.
226: *
227: * @param newSize new batch size value for commits involving this table; use -1 to use
228: * default batch size.
229: */
230: public void setBatchSize(int newSize);
231:
232: public void setCatalog(String newCatalog);
233:
234: /**
235: * Sets whether table is editable.
236: *
237: * @param editable true if table is editable, false otherwise
238: */
239: public void setEditable(boolean editable);
240:
241: /**
242: * set flat file location runtime input name which is generate when a flat file table
243: * is added to collaboration
244: *
245: * @param runtimeArgName name of runtime input argument for flat file location
246: */
247: public void setFlatFileLocationRuntimeInputName(
248: String runtimeArgName);
249:
250: /**
251: * Sets table name to given value.
252: *
253: * @param newName new table name
254: */
255: public void setName(String newName);
256:
257: public void setParent(SQLDBModel newParent);
258:
259: /**
260: * Sets schema name of this table.
261: *
262: * @param schema new schema name
263: */
264: public void setSchema(String schema);
265:
266: /**
267: * Sets whether table is selected.
268: *
269: * @param sel true if table is selected, false otherwise
270: */
271: public void setSelected(boolean sel);
272:
273: /**
274: * Sets the user defined table name.
275: *
276: * @param tPrefix user defined table name
277: */
278: public void setTablePrefix(String tPrefix);
279:
280: /**
281: * Sets the user defined catalog name.
282: *
283: * @param newName user defined table name
284: */
285: public void setUserDefinedCatalogName(String newName);
286:
287: /**
288: * Sets the user defined schema name.
289: *
290: * @param newName user defined schema name
291: */
292: public void setUserDefinedSchemaName(String newName);
293:
294: /**
295: * Sets the user defined table name.
296: *
297: * @param newName user defined table name
298: */
299: public void setUserDefinedTableName(String newName);
300:
301: /**
302: * Indicates whether the fully-qualified form should be used whenever one resolves
303: * this table's name.
304: *
305: * @param usesFullName true if fully-qualified form should be used, false otherwise
306: */
307: public void setUsingFullyQualifiedName(boolean usesFullName);
308:
309: //RFE-102428
310: /**
311: * Sets the staging table name.
312: *
313: * @param stName staging table name
314: */
315: public void setStagingTableName(String stName);
316:
317: }
|