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-2006 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:
042: package org.netbeans.lib.ddl;
043:
044: import java.sql.Connection;
045:
046: /**
047: * Connection information.
048: * This interface defines information needed for connection to database
049: * (database and driver url, login name, password and schema name). It can create JDBC
050: * connection and feels to be a bean (has propertychange support and customizer).
051: * Instances of this class uses explorer option to store information about
052: * open connection.
053: *
054: * @author Slavek Psenicka, Radko Najman
055: */
056:
057: public interface DBConnection extends java.io.Serializable {
058: /** Returns driver URL */
059: public String getDriver();
060:
061: /** Sets driver URL
062: * Fires propertychange event.
063: * @param driver DNew driver URL
064: */
065: public void setDriver(String driver);
066:
067: /** Returns database URL */
068: public String getDatabase();
069:
070: /** Sets database URL
071: * Fires propertychange event.
072: * @param database New database URL
073: */
074: public void setDatabase(String database);
075:
076: /** Returns user login name */
077: public String getUser();
078:
079: /** Sets user login name
080: * Fires propertychange event.
081: * @param user New login name
082: */
083: public void setUser(String user);
084:
085: /** Returns schema name */
086: public String getSchema();
087:
088: /** Sets schema name
089: * Fires propertychange event.
090: * @param schema Schema name
091: */
092: public void setSchema(String schema);
093:
094: /** Returns connection name */
095: public String getName();
096:
097: /** Sets connection name
098: * Fires propertychange event.
099: * @param name Connection name
100: */
101: public void setName(String name);
102:
103: /** Returns driver name */
104: public String getDriverName();
105:
106: /** Sets driver name
107: * Fires propertychange event.
108: * @param name Driver name
109: */
110: public void setDriverName(String name);
111:
112: /** Returns if password should be remembered */
113: public boolean rememberPassword();
114:
115: /** Sets password should be remembered
116: * @param flag New flag
117: */
118: public void setRememberPassword(boolean flag);
119:
120: /** Returns password */
121: public String getPassword();
122:
123: /** Sets password
124: * Fires propertychange event.
125: * @param password New password
126: */
127: public void setPassword(String password);
128:
129: /** Creates JDBC connection
130: * Uses DriverManager to create connection to specified database. Throws
131: * DDLException if none of driver/database/user/password is set or if
132: * driver or database does not exist or is inaccessible.
133: */
134: public Connection createJDBCConnection() throws DDLException;
135: }
|