001/* 002 GRANITE DATA SERVICES 003 Copyright (C) 2011 GRANITE DATA SERVICES S.A.S. 004 005 This file is part of Granite Data Services. 006 007 Granite Data Services is free software; you can redistribute it and/or modify 008 it under the terms of the GNU Library General Public License as published by 009 the Free Software Foundation; either version 2 of the License, or (at your 010 option) any later version. 011 012 Granite Data Services is distributed in the hope that it will be useful, but 013 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 014 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License 015 for more details. 016 017 You should have received a copy of the GNU Library General Public License 018 along with this library; if not, see <http://www.gnu.org/licenses/>. 019*/ 020 021package org.granite.builder; 022 023import java.io.PrintWriter; 024import java.io.StringWriter; 025 026import org.granite.builder.BuilderConsole.MessageType; 027import org.granite.generator.Input; 028import org.granite.generator.Listener; 029import org.granite.generator.Output; 030 031/** 032 * @author Franck WOLFF 033 */ 034public class BuilderListener implements Listener { 035 036 public void title(String msg) { 037 BuilderConsole.println(msg, MessageType.TITLE); 038 } 039 040 @Override 041 public void generating(Input<?> input, Output<?> output) { 042 BuilderConsole.println("Generating: " + output.getDescription() + " (" + output.getMessage() + ")"); 043 } 044 045 @Override 046 public void generating(String file, String message) { 047 BuilderConsole.println("Generating: " + file + " (" + message + ")"); 048 } 049 050 @Override 051 public void removing(Input<?> input, Output<?> output) { 052 BuilderConsole.println("Hidding: " + output.getDescription() + " (" + output.getMessage() + ")"); 053 } 054 055 @Override 056 public void removing(String file, String message) { 057 BuilderConsole.println("Hidding: " + file + " (" + message + ")"); 058 } 059 060 @Override 061 public void skipping(Input<?> input, Output<?> output) { 062 BuilderConsole.println("Skipping: " + output.getDescription() + " (" + output.getMessage() + ")", MessageType.DEBUG); 063 } 064 065 @Override 066 public void skipping(String file, String message) { 067 BuilderConsole.println("Skipping: " + file + " (" + message + ")", MessageType.DEBUG); 068 } 069 070 @Override 071 public void debug(String message, Throwable t) { 072 BuilderConsole.println(message + "\n" + getStackTrace(t), MessageType.DEBUG); 073 } 074 075 @Override 076 public void debug(String message) { 077 BuilderConsole.println(message, MessageType.DEBUG); 078 } 079 080 @Override 081 public void error(String message, Throwable t) { 082 BuilderConsole.println(message + "\n" + getStackTrace(t), MessageType.ERROR); 083 } 084 085 @Override 086 public void error(String message) { 087 BuilderConsole.println(message, MessageType.ERROR); 088 } 089 090 @Override 091 public void info(String message, Throwable t) { 092 BuilderConsole.println(message + "\n" + getStackTrace(t), MessageType.INFO); 093 } 094 095 @Override 096 public void info(String message) { 097 BuilderConsole.println(message, MessageType.INFO); 098 } 099 100 @Override 101 public void warn(String message, Throwable t) { 102 BuilderConsole.println(message + "\n" + getStackTrace(t), MessageType.WARNING); 103 } 104 105 @Override 106 public void warn(String message) { 107 BuilderConsole.println(message, MessageType.WARNING); 108 } 109 110 private static String getStackTrace(Throwable t) { 111 StringWriter sw = new StringWriter(); 112 PrintWriter pw = new PrintWriter(sw); 113 t.printStackTrace(pw); 114 return sw.toString(); 115 } 116}