package sk.stuba.fiit.perconik.activity.serializers.runtime;
import java.util.Set;
import org.eclipse.core.runtime.IStatus;
import sk.stuba.fiit.perconik.data.content.StructuredContent;
import sk.stuba.fiit.perconik.eclipse.core.runtime.StatusSeverity;
import static java.util.Arrays.asList;
import static sk.stuba.fiit.perconik.activity.serializers.Serializations.identifyObject;
import static sk.stuba.fiit.perconik.data.content.StructuredContents.key;
public final class StatusSerializer extends AbstractStatusSerializer<IStatus> {
public StatusSerializer(final Option ... options) {
super(options);
}
public StatusSerializer(final Iterable<Option> options) {
super(options);
}
static void putStatus(final StructuredContent content, final IStatus status, final Set<Option> options) {
content.put(key("plugin"), status.getPlugin());
content.put(key("code"), status.getCode());
content.put(key("severity"), StatusSeverity.valueOf(status.getSeverity()).toString().toLowerCase());
content.put(key("message"), status.getMessage());
content.put(key("exception"), identifyObject(status.getException()));
if (options.contains(StandardOption.TREE)) {
content.put(key("children"), new StatusSerializer(options).serialize(asList(status.getChildren())));
}
}
}