/*
* @(#)ConnectionBase.java 1.17 06/10/10
*
* Copyright 1990-2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License version
* 2 only, as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License version 2 for more details (a copy is
* included at /legal/license.txt).
*
* You should have received a copy of the GNU General Public License
* version 2 along with this work; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 or visit www.sun.com if you need additional
* information or have any questions.
*
*/
package com.sun.cdc.io;
import java.io.*;
import javax.microedition.io.*;
/**
* Base class for Connection protocols.
*
* @version 1.1 2/3/2000
*/
abstract public class ConnectionBase extends GeneralBase implements Connection, ConnectionBaseInterface {
/**
* Open a connection to a target.
*
* @param string The URL for the connection
* @param mode The access mode
* @param timeouts A flag to indicate that the called wants timeout exceptions
*
* @exception IllegalArgumentException If a parameter is invalid.
* @exception ConnectionNotFoundException If the connection cannot be found.
* @exception IOException If some other kind of I/O error occurs.
*/
abstract public void open(String name, int mode, boolean timeouts) throws IOException;
/**
* Open a connection to a target.
*
* @param string The URL for the connection
* @param mode The access mode
* @param timeouts A flag to indicate that the called wants timeout exceptions
* @return A new Connection object
*
* @exception IllegalArgumentException If a parameter is invalid.
* @exception ConnectionNotFoundException If the connection cannot be found.
* @exception IOException If some other kind of I/O error occurs.
*/
public Connection openPrim(String name, int mode, boolean timeouts) throws IOException {
open(name, mode, timeouts);
return this;
}
/**
* Open and return an input stream for a connection.
*
* @return An input stream
* @exception IOException If an I/O error occurs
*/
public InputStream openInputStream() throws IOException {
throw new RuntimeException("No openInputStream");
}
/**
* Open and return an output stream for a connection.
*
* @return An input stream
* @exception IOException If an I/O error occurs
*/
public OutputStream openOutputStream() throws IOException {
throw new RuntimeException("No openOutputStream");
}
/**
* Open and return a data input stream for a connection.
*
* @return An input stream
* @exception IOException If an I/O error occurs
*/
public DataInputStream openDataInputStream() throws IOException {
InputStream is = openInputStream();
if(is instanceof DataInputStream) {
return (DataInputStream)is;
} else {
return new DataInputStream(is);
}
}
/**
* Open and return a data output stream for a connection.
*
* @return An input stream
* @exception IOException If an I/O error occurs
*/
public DataOutputStream openDataOutputStream() throws IOException {
OutputStream os = openOutputStream();
if(os instanceof DataOutputStream) {
return (DataOutputStream)os;
} else {
return new DataOutputStream(os);
}
}
}