001: /*
002: * The contents of this file are subject to the terms of the Common Development
003: * and Distribution License (the License). You may not use this file except in
004: * compliance with the License.
005: *
006: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
007: * or http://www.netbeans.org/cddl.txt.
008: *
009: * When distributing Covered Code, include this CDDL Header Notice in each file
010: * and include the License file at http://www.netbeans.org/cddl.txt.
011: * If applicable, add the following below the CDDL Header, with the fields
012: * enclosed by brackets [] replaced by your own identifying information:
013: * "Portions Copyrighted [year] [name of copyright owner]"
014: *
015: * The Original Software is NetBeans. The Initial Developer of the Original
016: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
017: * Microsystems, Inc. All Rights Reserved.
018: */
019:
020: /*
021: *
022: * Copyright 2005 Sun Microsystems, Inc.
023: *
024: * Licensed under the Apache License, Version 2.0 (the "License");
025: * you may not use this file except in compliance with the License.
026: * You may obtain a copy of the License at
027: *
028: * http://www.apache.org/licenses/LICENSE-2.0
029: *
030: * Unless required by applicable law or agreed to in writing, software
031: * distributed under the License is distributed on an "AS IS" BASIS,
032: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
033: * See the License for the specific language governing permissions and
034: * limitations under the License.
035: *
036: */
037: package org.netbeans.modules.jdbcwizard.builder.dbmodel;
038:
039: /**
040: * Interface describing column metadata for data sources providing information in a database or
041: * database-like format. Implementing classes must support the Cloneable interface.
042: *
043: * @author
044: */
045: public interface DBColumn extends Cloneable, Comparable {
046:
047: /**
048: * Gets the column name
049: *
050: * @return column name
051: */
052: public String getName();
053:
054: /**
055: * Indicates whether this column is part of a primary key.
056: *
057: * @return true if this column is part of a primary key; false otherwise.
058: */
059: public boolean isPrimaryKey();
060:
061: /**
062: * Indicates whether this column is part of a foreign key.
063: *
064: * @return true if this column is part of a foreign key; false otherwise.
065: */
066: public boolean isForeignKey();
067:
068: /**
069: * Indicates whether this column is indexed.
070: *
071: * @return true if this column is indexed; false otherwise
072: */
073: public boolean isIndexed();
074:
075: /**
076: * Indicates whether this column can accept a null value.
077: *
078: * @return true if null is a valid value for this column, false otherwise.
079: */
080: public boolean isNullable();
081:
082: /**
083: * Gets the parent/owner (DBTable) of this column
084: *
085: * @return DBTable containing this column
086: */
087: public DBTable getParent();
088:
089: /**
090: * Gets the JDBC datatype for this column, as selected from the enumerated types in
091: * java.sql.Types.
092: *
093: * @return JDBC type value
094: * @see java.sql.Types
095: */
096: public int getJdbcType();
097:
098: /**
099: * Gets the JDBC datatype for this column, as a human-readable String.
100: *
101: * @return JDBC type value as a String
102: */
103: public String getJdbcTypeString();
104:
105: /**
106: * Gets the scale attribute of this column.
107: *
108: * @return scale
109: */
110: public int getScale();
111:
112: /**
113: * Gets the precision attribute of this column.
114: *
115: * @return precision
116: */
117: public int getPrecision();
118:
119: /**
120: * Gets the default value
121: *
122: * @return defaultValue
123: */
124: public String getDefaultValue();
125:
126: /**
127: * Gets the Ordinal Position
128: *
129: * @return int
130: */
131: public int getOrdinalPosition();
132:
133: /**
134: * @return
135: */
136: public boolean isSelected();
137:
138: /*
139: * Gets the status of selection of the column table @return boolean selected
140: */
141: public boolean isInsertSelected();
142:
143: /*
144: * Gets the status of selection of the column table @return boolean selected
145: */
146: public boolean isUpdateSelected();
147:
148: /*
149: * Gets the status of selection of the column table @return boolean selected
150: */
151: public boolean isChooseSelected();
152:
153: /*
154: * Gets the status of selection of the column table @return boolean selected
155: */
156: public boolean isPollSelected();
157:
158: /*
159: * Gets the status of the editing of the column table @return boolean editable
160: */
161: public boolean isEditable();
162:
163: /*
164: * Gets the status of the editing of the column table @return boolean editable
165: */
166: public boolean isInsertEditable();
167:
168: /*
169: * set column table editable
170: */
171: public void setEditable(boolean cedit);
172:
173: /*
174: * set column table editable
175: */
176: public void setInsertEditable(boolean cedit);
177:
178: /*
179: * set column table selected
180: */
181: public void setSelected(boolean cselect);
182:
183: /**
184: * @param cselect
185: */
186: public void setInsertSelected(boolean cselect);
187:
188: /**
189: * @param cselect
190: */
191: public void setUpdateSelected(boolean cselect);
192:
193: /**
194: * @param cselect
195: */
196: public void setChooseSelected(boolean cselect);
197:
198: /**
199: * @param cselect
200: */
201: public void setPollSelected(boolean cselect);
202:
203: /**
204: *
205: * @return
206: */
207: public String getJavaName();
208:
209: /**
210: *
211: * @param newName
212: */
213: public void setJavaName(final String newName);
214:
215: }
|