package net.mar;

import java.io.*;
import java.sql.*;
import java.util.*;
import java.util.Date;

import net.alanmaxwell.sql.WSASQLRetrieverThread;

import org.apache.log4j.Logger;

public class RetrieverMapper {
  
    public final static RetrieverMapper INSTANCE = new RetrieverMapper();
    private static Map objMap;
    private static Logger logger = Logger.getLogger("wsa.simple");

   

    /**
     * A private constructor since this is a Singleton
     */
    private RetrieverMapper() {
        objMap = Collections.synchronizedMap(new HashMap());
    }

    public void addRetriever(String str,WSASQLRetrieverThread wrt) {
        objMap.put(str,wrt);
    }
    public void delRetriever(String str) {
        objMap.remove(str);
    }

    public int getNumberRetriever() {
        return objMap.size();
    } 
    
    public int rowsSoFar(String str) {
        WSASQLRetrieverThread wsa=(WSASQLRetrieverThread)objMap.get(str);
        if (wsa != null) {
        return wsa.getRowsReturned();
        }        
        else {
            return 0;
        }        
    }
    public void setQueryTerminated(String str){
        WSASQLRetrieverThread wsa=(WSASQLRetrieverThread)objMap.get(str);
        if (wsa != null) {
        wsa.setQueryTerminated(true);
        }
        else {
            logger.info("wsa null" );
        }
    }
    public synchronized void release() {
    }
/*
 * public void addRetriever(String str,WSASQLRetrieverThread wrt) {
 * smap.put(str,wrt); }
 * 
 * public int getNumberRetriever() { return smap.size(); }
 * 
 * public boolean isRunning(String str) { WSASQLRetrieverThread
 * wsa=(WSASQLRetrieverThread)smap.get(str); Thread runner; runner =
 * Thread(wsa); return runner.
 * 
 *  
 */
}