package xapi.fu;
import static xapi.fu.Log.allLogs;
/**
* @author James X. Nelson (james@wetheinter.net)
* Created on 07/11/15.
*/
public interface Debuggable extends Coercible {
default boolean debugEnabled() {
return Boolean.valueOf("xapi.debug");
}
default String debug(Object ... values) {
StringBuilder b = new StringBuilder();
boolean first = true;
for (Object value : values) {
String toPrint = coerce(value, first);
first = false;
b.append(toPrint);
}
return b.toString();
}
default String coerce(Object value) {
return coerce(value);
}
@Override
default String listSeparator() {
return ", ";
}
default void viewException(Object from, Throwable e) {
allLogs(this, from, e)
.log(from.getClass(), from, e);
}
}