package uk.co.mmscomputing.util.configuration; import java.io.*; import java.util.*; import uk.co.mmscomputing.util.JarFile; public class ConfigurationMap extends Hashtable{ static private String basePath="base_path"; static private String confPath="config_path"; static private String conffn="configuration.txt"; public ConfigurationMap(){ } public ConfigurationMap(Class main){ try{ String cn=main.getName(); String dn=cn.substring(0,cn.lastIndexOf('.')); String base=dn.replace('.',File.separatorChar)+File.separator; put(basePath,base); String cfn=base+conffn; // search 'conffn' is in same directory as class main if(new JarFile(cfn).exists()){ // load defaults ConfigurationReader cr=new ConfigurationReader(cfn); cr.read(this);cr.close(); } put(confPath,cfn); // set conffn // System.err.println("ConfigurationMap(Class): confPath = "+getString(confPath)); }catch(IOException ioe){ System.err.println("ConfigurationMap(Class): "+ioe.getMessage()); } } public String getString(String key, String value){ Object s=get(key); if(s!=null){ return (String)s; } put(key,value); return value; } public String getString(String key){ Object s=get(key); if(s!=null){ return (String)s; } put(key,""); return ""; } public int getInt(String key, int value){ Object s=get(key); if(s!=null){ try{ return Integer.parseInt((String)s); }catch(NumberFormatException nfe){ } } put(key,Integer.toString(value)); return value; } public int getInt(String key){ Object s=get(key); if(s!=null){ try{ return Integer.parseInt((String)s); }catch(NumberFormatException nfe){ } } put(key,"0"); return 0; } }