/*
* Copyright (c) 2004, 2005, 2006 TADA AB - Taby Sweden
* Distributed under the terms shown in the file COPYRIGHT
* found in the root directory of this distribution or at
* http://eng.tada.se/osprojects/COPYRIGHT.html
*/
package org.postgresql.pljava;
import java.sql.SQLException;
/**
* Interface for objects that are pooled and reused.
* @author Thomas Hallgren
*/
public interface PooledObject
{
/**
* The activate method is called when the instance is activated
* from its "passive" state.
* @throws SQLException if something goes wrong with the activation.
* When this happens, a call will be issued to {@link #remove()} and
* the object will no longer be part of the pool.
*/
void activate()
throws SQLException;
/**
* The passivate method is called before the instance enters
* the "passive" state.
* @throws SQLException if something goes wrong with the passivation.
* When this happens, a call will be issued to {@link #remove()} and
* the object will no longer be part of the pool.
*/
void passivate()
throws SQLException;
/**
* PLJava invokes this method before it ends the life of the
* pooled object.
*/
void remove();
}