/*
 * Created on 27-Oct-2009
 *
 * TODO 
 */
package uk.ac.roe.wfau;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Properties;

import org.apache.log4j.Logger;

/**
 * @author mar
 *
 */
public class LoadVSAColumns {
    private static LoadVSAColumns singletonObject;
    
    public static Logger logger = Logger.getLogger("wsa.simple");
    
	/** A private Constructor prevents any other class from instantiating. */
	private LoadVSAColumns() {
	    
        
        
		//	 Optional Code
	    try {
	    InputStream inProp = getClass().getClassLoader().getResourceAsStream("VSA.cols");
	    BufferedReader br = new BufferedReader(new InputStreamReader(inProp));
	
	    logger.info("loading VSA.cols");
	    String strLine;
	    VSASchema.colMap=new HashMap();
	    //Read File Line By Line
	    String [] parts;
	    while ((strLine = br.readLine()) != null)   {
	    // Print the content on the console
	    	parts=strLine.split("###");
	    //logger.info(parts[1]);
	    if (!VSASchema.colMap.containsKey(parts[1].toUpperCase())) {
	    	VSASchema.colMap.put(parts[1].toUpperCase(), parts[2]+"###"+parts[3]);
	    }
	    logger.info(VSASchema.getUCDofCol(parts[1]));
	    }
	    logger.info("size "+VSASchema.colMap.size());
	    
        } catch (Exception e) {
            // TODO Auto-generated catch block
            logger.info("error in loading VSA.cols "+e);
            e.printStackTrace();
        }
        
	}
	public static synchronized  void getSingletonObject() {
	  //  logger.info ("SO "+singletonObject);
		if (singletonObject == null) {
			singletonObject = new LoadVSAColumns();
		}
		logger.info ("SOEX "+singletonObject);
	//	return singletonObject;
	}
	public Object clone() throws CloneNotSupportedException {
		throw new CloneNotSupportedException();
	}
}
