View Javadoc

1   /*
2   * The contents of this file are subject to the BT "ZEUS" Open Source 
3   * Licence (L77741), Version 1.0 (the "Licence"); you may not use this file 
4   * except in compliance with the Licence. You may obtain a copy of the Licence
5   * from $ZEUS_INSTALL/licence.html or alternatively from
6   * http://www.labs.bt.com/projects/agents/zeus/licence.htm
7   * 
8   * Except as stated in Clause 7 of the Licence, software distributed under the
9   * Licence is distributed WITHOUT WARRANTY OF ANY KIND, either express or 
10  * implied. See the Licence for the specific language governing rights and 
11  * limitations under the Licence.
12  * 
13  * The Original Code is within the package zeus.*.
14  * The Initial Developer of the Original Code is British Telecommunications
15  * public limited company, whose registered office is at 81 Newgate Street, 
16  * London, EC1A 7AJ, England. Portions created by British Telecommunications 
17  * public limited company are Copyright 1996-9. All Rights Reserved.
18  * 
19  * THIS NOTICE MUST BE INCLUDED ON ANY COPY OF THIS FILE
20  */
21  
22  
23  
24  package zeus.util;
25  
26  import java.util.*;
27  import java.io.*;
28  
29  public class Core {
30    protected static PrintWriter out = new PrintWriter(System.out);
31  
32    public static boolean debug = SystemProps.getState("debug.on",false);
33    public static int     level = SystemProps.getInt("debug.level",1);
34  
35    public static final void setDebuggerOutputFile(String dout) {
36       try {
37          if ( dout != null )
38  	   out = new PrintWriter(new FileWriter(dout));
39       }
40       catch(IOException e) {
41          out = new PrintWriter(System.out);
42       }
43    }
44  
45  
46    public static void FAIL(String s) {
47      System.err.println(s);
48      if ( debug ) Assert.notNull(null);
49    }
50    public static final void DEBUG(int level, Object any) {
51       if ( debug && level <= Core.level ) debug(level,any);
52    }
53    protected static final void debug(int level, Object any) {
54       if ( (any.getClass()).isArray() ) {
55          Object[] array = (Object[])any;
56          out.print("DEBUG " + level + " [");
57          for(int i = 0; i < array.length; i++ ) {
58             out.print(array[i]);
59             if ( i < array.length-1 )
60                out.print(",");
61          }
62          out.println("]");
63       }
64       else {
65          out.println("DEBUG " + level + " " + any);
66       }
67       out.flush();
68    }
69    public static void ERROR(Object object, int num, Object source) {
70       if ( object == null )
71          error(num,source);
72    }
73    public static void ERROR(boolean state, int num, Object source) {
74       if ( !state )
75          error(num,source);
76    }
77    protected static void error(int num, Object source) {
78       if ( source instanceof String )
79          System.err.println("INTERNAL ERROR: " + source + "#" + num);
80       else {
81          String src = source.getClass().getName();
82          System.err.println("INTERNAL ERROR in " + src + "#" + num);
83       }
84    }
85    public static void USER_ERROR(String s) {
86       System.err.println("USER ERROR: " + s);
87       if ( debug ) Assert.notNull(null);
88    }
89  }