| package annotations.io; |
| |
| import java.io.PrintWriter; |
| import java.util.logging.Level; |
| |
| /** |
| * @author dbro |
| */ |
| public class DebugWriter { |
| private PrintWriter out = new PrintWriter(System.out); |
| private Level level = Level.WARNING; |
| |
| public DebugWriter or(final DebugWriter other) { |
| return new DebugWriter() { |
| @Override |
| public boolean isEnabled() { |
| return super.isEnabled() || other.isEnabled(); |
| } |
| }; |
| } |
| |
| public static boolean anyEnabled(DebugWriter... debugs) { |
| for (DebugWriter debug : debugs) { |
| if (debug.isEnabled()) { return true; } |
| } |
| return false; |
| } |
| |
| public boolean isEnabled() { |
| return level == Level.INFO; |
| } |
| |
| public void setEnabled(boolean enabled) { |
| level = enabled ? Level.INFO : Level.WARNING; |
| } |
| |
| public void debug(String format, Object... args) { |
| if (isEnabled()) { |
| out.print(String.format(format, args)); |
| out.flush(); |
| } |
| } |
| } |