package com.kodcu.other;
import netscape.javascript.JSObject;
import java.util.Objects;
import java.util.function.Consumer;
/**
* Created by usta on 20.06.2015.
*/
public class ConverterResult {
private String taskId;
private String rendered;
private String backend;
private String doctype;
public ConverterResult(String taskId, String rendered, String backend, String doctype) {
this.taskId = taskId;
this.rendered = fixLineEnding(rendered);
this.backend = backend;
this.doctype = doctype;
}
public ConverterResult(jdk.nashorn.api.scripting.JSObject jsObject) {
setRendered((String) jsObject.getMember("rendered"));
setBackend((String) jsObject.getMember("backend"));
setDoctype((String) jsObject.getMember("doctype"));
}
public void setRendered(String rendered) {
this.rendered = fixLineEnding(rendered);
}
private String fixLineEnding(String rendered) {
if (Objects.isNull(rendered)) {
return null;
}
return rendered.replaceAll("\\R", "\n");
}
public String getRendered() {
return rendered;
}
public void setBackend(String backend) {
this.backend = backend;
}
public String getBackend() {
return backend;
}
public void setDoctype(String doctype) {
this.doctype = doctype;
}
public String getDoctype() {
return doctype;
}
public boolean isBackend(String backend) {
return backend.equals(this.backend);
}
public String getTaskId() {
return taskId;
}
public void setTaskId(String taskId) {
this.taskId = taskId;
}
public void afterRender(Consumer<String> consumer, Runnable... runnable) {
if (Objects.nonNull(rendered)) {
consumer.accept(rendered);
for (Runnable r : runnable) {
r.run();
}
}
}
}