
cn.icuter.jsql.pool.PooledObject Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jsql-jdk1.6 Show documentation
Show all versions of jsql-jdk1.6 Show documentation
JDBC framework for writing sql like java programing
The newest version!
package cn.icuter.jsql.pool;
import java.util.concurrent.RunnableScheduledFuture;
/**
* @author edward
* @since 2018-08-18
*/
public class PooledObject {
private final long createTime;
private volatile long lastBorrowedTime;
private volatile long lastReturnedTime;
private volatile boolean borrowed;
private volatile boolean valid = true;
private final T object;
private ObjectPool objectPool;
RunnableScheduledFuture> scheduledFuture; // maintains idle task object
public PooledObject(T object) {
this.object = object;
this.createTime = System.currentTimeMillis();
}
public long getCreateTime() {
return createTime;
}
public long getLastBorrowedTime() {
return lastBorrowedTime;
}
public long getLastReturnedTime() {
return lastReturnedTime;
}
public boolean isBorrowed() {
return borrowed;
}
public boolean isValid() {
return valid;
}
public T getObject() {
return object;
}
void setObjectPool(ObjectPool objectPool) {
this.objectPool = objectPool;
}
public ObjectPool getObjectPool() {
return objectPool;
}
void updateLastBorrowedTime() {
this.lastBorrowedTime = System.currentTimeMillis();
}
void updateLastReturnedTime() {
this.lastReturnedTime = System.currentTimeMillis();
}
void setBorrowed() {
borrowed = true;
}
void setReturned() {
borrowed = false;
}
void setInvalid() {
valid = false;
}
@Override
public String toString() {
return "PooledObject {"
+ "createTime=" + createTime
+ ", lastBorrowedTime=" + lastBorrowedTime
+ ", lastReturnedTime=" + lastReturnedTime
+ ", borrowed=" + borrowed
+ ", valid=" + valid
+ ", objectType=" + (object == null ? null : object.getClass().getName())
+ '}';
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy