Class PooledConnection

  • All Implemented Interfaces:
    java.lang.reflect.InvocationHandler

    class PooledConnection
    extends java.lang.Object
    implements java.lang.reflect.InvocationHandler
    • Field Detail

      • IFACES

        private static final java.lang.Class<?>[] IFACES
      • hashCode

        private final int hashCode
      • realConnection

        private final java.sql.Connection realConnection
      • proxyConnection

        private final java.sql.Connection proxyConnection
      • checkoutTimestamp

        private long checkoutTimestamp
      • createdTimestamp

        private long createdTimestamp
      • lastUsedTimestamp

        private long lastUsedTimestamp
      • connectionTypeCode

        private int connectionTypeCode
      • valid

        private boolean valid
    • Constructor Detail

      • PooledConnection

        public PooledConnection​(java.sql.Connection connection,
                                PooledDataSource dataSource)
        Constructor for SimplePooledConnection that uses the Connection and PooledDataSource passed in.
        Parameters:
        connection - - the connection that is to be presented as a pooled connection
        dataSource - - the dataSource that the connection is from
    • Method Detail

      • invalidate

        public void invalidate()
        Invalidates the connection.
      • isValid

        public boolean isValid()
        Method to see if the connection is usable.
        Returns:
        True if the connection is usable
      • getRealConnection

        public java.sql.Connection getRealConnection()
        Getter for the *real* connection that this wraps.
        Returns:
        The connection
      • getProxyConnection

        public java.sql.Connection getProxyConnection()
        Getter for the proxy for the connection.
        Returns:
        The proxy
      • getRealHashCode

        public int getRealHashCode()
        Gets the hashcode of the real connection (or 0 if it is null).
        Returns:
        The hashcode of the real connection (or 0 if it is null)
      • getConnectionTypeCode

        public int getConnectionTypeCode()
        Getter for the connection type (based on url + user + password).
        Returns:
        The connection type
      • setConnectionTypeCode

        public void setConnectionTypeCode​(int connectionTypeCode)
        Setter for the connection type.
        Parameters:
        connectionTypeCode - - the connection type
      • getCreatedTimestamp

        public long getCreatedTimestamp()
        Getter for the time that the connection was created.
        Returns:
        The creation timestamp
      • setCreatedTimestamp

        public void setCreatedTimestamp​(long createdTimestamp)
        Setter for the time that the connection was created.
        Parameters:
        createdTimestamp - - the timestamp
      • getLastUsedTimestamp

        public long getLastUsedTimestamp()
        Getter for the time that the connection was last used.
        Returns:
        - the timestamp
      • setLastUsedTimestamp

        public void setLastUsedTimestamp​(long lastUsedTimestamp)
        Setter for the time that the connection was last used.
        Parameters:
        lastUsedTimestamp - - the timestamp
      • getTimeElapsedSinceLastUse

        public long getTimeElapsedSinceLastUse()
        Getter for the time since this connection was last used.
        Returns:
        - the time since the last use
      • getAge

        public long getAge()
        Getter for the age of the connection.
        Returns:
        the age
      • getCheckoutTimestamp

        public long getCheckoutTimestamp()
        Getter for the timestamp that this connection was checked out.
        Returns:
        the timestamp
      • setCheckoutTimestamp

        public void setCheckoutTimestamp​(long timestamp)
        Setter for the timestamp that this connection was checked out.
        Parameters:
        timestamp - the timestamp
      • getCheckoutTime

        public long getCheckoutTime()
        Getter for the time that this connection has been checked out.
        Returns:
        the time
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Allows comparing this connection to another.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - - the other connection to test for equality
        See Also:
        Object.equals(Object)
      • invoke

        public java.lang.Object invoke​(java.lang.Object proxy,
                                       java.lang.reflect.Method method,
                                       java.lang.Object[] args)
                                throws java.lang.Throwable
        Required for InvocationHandler implementation.
        Specified by:
        invoke in interface java.lang.reflect.InvocationHandler
        Parameters:
        proxy - - not used
        method - - the method to be executed
        args - - the parameters to be passed to the method
        Throws:
        java.lang.Throwable
        See Also:
        InvocationHandler.invoke(Object, java.lang.reflect.Method, Object[])
      • checkConnection

        private void checkConnection()
                              throws java.sql.SQLException
        Throws:
        java.sql.SQLException