1 package org.codehaus.mojo.exec;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.PrintStream;
23 import org.apache.maven.plugin.logging.Log;
24
25
26
27
28 class StreamLog implements Log
29 {
30 static final int DEBUG = 0;
31 static final int INFO = 1;
32 static final int WARN = 2;
33 static final int ERROR = 3;
34
35 private int level = INFO;
36
37 public void setLevel( int level )
38 {
39 if ( level < DEBUG || level > ERROR )
40 {
41 throw new IllegalStateException( "invalid level: " + level );
42 }
43 this.level = level;
44 }
45
46 private final PrintStream s;
47
48 StreamLog( PrintStream s )
49 {
50 this.s = s;
51 }
52
53 public void debug( CharSequence content )
54 {
55 if ( isDebugEnabled() )
56 {
57 s.println( content );
58 }
59 }
60
61 public void debug( CharSequence content, Throwable error )
62 {
63 if ( isDebugEnabled() )
64 {
65 s.println( content );
66 }
67 }
68
69 public void debug( Throwable error )
70 {
71 if ( isDebugEnabled() )
72 {
73 error.printStackTrace( s );
74 }
75 }
76
77 public void error( CharSequence content )
78 {
79 if ( isErrorEnabled() )
80 {
81 s.println( content );
82 }
83 }
84
85 public void error( CharSequence content, Throwable error )
86 {
87 error( content );
88 error( error );
89 }
90
91 public void error( Throwable error )
92 {
93 if ( isErrorEnabled() )
94 {
95 error.printStackTrace( s );
96 }
97 }
98
99 public void info( CharSequence content )
100 {
101 if ( isInfoEnabled() )
102 {
103 s.println( content );
104 }
105 }
106
107 public void info( CharSequence content, Throwable error )
108 {
109 info( content );
110 info( error );
111 }
112
113 public void info( Throwable error )
114 {
115 if ( isInfoEnabled() )
116 {
117 error.printStackTrace( s );
118 }
119 }
120
121 public boolean isDebugEnabled()
122 {
123 return level >= DEBUG;
124 }
125
126 public boolean isErrorEnabled()
127 {
128 return level >= ERROR;
129 }
130
131 public boolean isInfoEnabled()
132 {
133 return level >= INFO;
134 }
135
136 public boolean isWarnEnabled()
137 {
138 return level >= WARN;
139 }
140
141 public void warn( CharSequence content )
142 {
143 if ( isWarnEnabled() )
144 {
145 s.println( content );
146 }
147 }
148
149 public void warn( CharSequence content, Throwable error )
150 {
151 warn( content );
152 warn( error );
153 }
154
155 public void warn( Throwable error )
156 {
157 if ( isWarnEnabled() )
158 {
159 error.printStackTrace( s );
160 }
161 }
162 }