/*
*
*/
package ext.egantt.util.trace;
import com.egantt.util.trace.TraceImpl;
import ext.egantt.util.Hive;
import java.io.*;
import java.net.URL;
import java.util.HashMap;
import java.util.ResourceBundle;
public class BasicTraceImpl
implements TraceImpl
{
public BasicTraceImpl()
{
out = System.out;
traceEnable = new HashMap();
URL url = Hive.getURL("trace.cfg");
if(url != null)
try
{
InputStream input = url.openStream();
BufferedReader in = new BufferedReader(new InputStreamReader(input));
String line;
for(line = line = in.readLine(); line != null; line = in.readLine())
{
int i = line.indexOf("=");
if(i > 0)
{
String name = line.substring(0, i).trim();
String value = line.substring(i + 1).trim();
traceEnable.put(name, Boolean.valueOf(value).booleanValue() ? ((Object) (Boolean.TRUE)) : ((Object) (Boolean.FALSE)));
}
}
input.close();
}
catch(IOException io)
{
System.out.println(io);
}
TRACE = getEnable(THIS);
}
public boolean getEnable(String s)
{
if(TRACE)
out.println((new StringBuilder()).append(THIS).append(".getEnable() preforming lookup on key ").append(s).toString());
for(int i = 0; i >= 0; i = s.lastIndexOf('.'))
{
Boolean value = (Boolean)traceEnable.get(s);
if(value != null)
return value.booleanValue();
s = s.substring(0, i);
}
return false;
}
public PrintStream getPrintStream()
{
return out;
}
public synchronized void setOut(PrintStream newOut)
{
out = newOut;
}
private static String THIS = ext.egantt.util.trace.BasicTraceImpl.class.getName();
private static boolean TRACE = false;
public static final String DELIMITER = "=";
public static final String TRACE_CONFIG = "trace.cfg";
public PrintStream out;
protected HashMap traceEnable;
protected ResourceBundle bundle;
}