001 /** 002 * Copyright 2007-2008 Arthur Blake 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package net.sf.log4jdbc; 017 018 /** 019 * Common interface that all Spy classes can implement. 020 * This is used so that any class that is being spied upon can transmit generic information about 021 * itself to the whoever is doing the spying. 022 * 023 * @author Arthur Blake 024 */ 025 public interface Spy 026 { 027 028 /** 029 * Get the type of class being spied upon. For example, "Statement", "ResultSet", etc. 030 * 031 * @return a description of the type of class being spied upon. 032 */ 033 public String getClassType(); 034 035 /** 036 * Get the connection number. In general, this is used to track which underlying connection is being 037 * used from the database. The number will be incremented each time a new Connection is retrieved from the 038 * real underlying jdbc driver. This is useful for debugging and tracking down problems with connection pooling. 039 * 040 * @return the connection instance number. 041 */ 042 public int getConnectionNumber(); 043 }