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 }