package net.ion.craken.db; import java.sql.Connection; import java.sql.SQLException; import net.ion.framework.db.IDBController; import net.ion.framework.db.Rows; import net.ion.framework.db.manager.DBManager; import net.ion.framework.db.procedure.RepositoryService; import net.sf.cglib.proxy.Enhancer; public abstract class CrakenManager extends DBManager { private Connection fake; private RepositoryService cservice; protected CrakenManager() { this.cservice = new CrakenRepositoryService(this); } public abstract Rows queryBy(CrakenUserProcedure crakenUserProcedure) throws Exception; public abstract int updateWith(CrakenUserProcedure crakenUserProcedure) throws Exception; public abstract int updateWith(CrakenUserProcedureBatch crakenUserProcedureBatch) throws Exception; public abstract int updateWith(CrakenUserProcedures crakenUserProcedures) throws Exception ; @Override public Connection getConnection() throws SQLException { return this.fake; } @Override public int getDBManagerType() { return 77; } @Override public String getDBType() { return "crakenFn"; } @Override public RepositoryService getRepositoryService() { return cservice; } @Override protected void myDestroyPool() throws Exception { } protected void heartbeatQuery(IDBController dc) throws SQLException { // no action } @Override protected void myInitPool() throws SQLException { Enhancer e = new Enhancer(); e.setSuperclass(Connection.class); e.setCallback(new ConnectionMock()); this.fake = (Connection) e.create(); } }