package jetbrains.mps.make.script;
/*Generated by MPS */
import jetbrains.mps.messages.IMessage;
public interface IFeedback {
IFeedback.Severity getSeverity();
String getMessage();
Object getSource();
Throwable getException();
enum Severity {
ERROR("error"),
WARNING("warning"),
INFO("info");
private String severity;
Severity(String severity) {
this.severity = severity;
}
@Override
public String toString() {
return severity.toUpperCase();
}
}
abstract class Stub implements IFeedback {
public Stub() {
}
@Override
public Throwable getException() {
return null;
}
@Override
public Object getSource() {
return null;
}
}
class MESSAGE implements IFeedback {
private IMessage msg;
public MESSAGE(IMessage message) {
this.msg = message;
}
@Override
public String getMessage() {
return msg.getText();
}
@Override
public IFeedback.Severity getSeverity() {
switch (msg.getKind()) {
case ERROR:
return IFeedback.Severity.ERROR;
case WARNING:
return IFeedback.Severity.WARNING;
case INFORMATION:
return IFeedback.Severity.INFO;
default:
return null;
}
}
@Override
public Object getSource() {
return msg.getHintObject();
}
@Override
public Throwable getException() {
return msg.getException();
}
}
class Default extends IFeedback.Stub implements IFeedback {
private final String message;
private final Throwable throwable;
private final IFeedback.Severity severity;
public Default(String message) {
this(message, null);
}
public Default(String message, Throwable throwable) {
this(message, throwable, IFeedback.Severity.ERROR);
}
public Default(String message, Throwable throwable, IFeedback.Severity severity) {
this.message = message;
this.throwable = throwable;
this.severity = severity;
}
@Override
public IFeedback.Severity getSeverity() {
return severity;
}
@Override
public String getMessage() {
return message;
}
@Override
public String toString() {
String msg = getSeverity().toString() + " - " + getMessage().toString();
return (getException() != null ? msg + " (" + getException().toString() + ")" : msg);
}
@Override
public Throwable getException() {
return throwable;
}
}
class ERROR extends IFeedback.Default implements IFeedback {
public ERROR(String message) {
super(message, null, IFeedback.Severity.ERROR);
}
public ERROR(String message, Throwable throwable) {
super(message, throwable, IFeedback.Severity.ERROR);
}
}
class WARNING extends IFeedback.Default implements IFeedback {
public WARNING(String message) {
super(message, null, IFeedback.Severity.WARNING);
}
public WARNING(String message, Throwable throwable) {
super(message, throwable, IFeedback.Severity.WARNING);
}
}
class INFORMATION extends IFeedback.Default implements IFeedback {
public INFORMATION(String message) {
super(message, null, IFeedback.Severity.INFO);
}
public INFORMATION(String message, Throwable throwable) {
super(message, throwable, IFeedback.Severity.INFO);
}
}
}