package com.codeborne.selenide.logevents;
import static com.codeborne.selenide.logevents.LogEvent.EventStatus.IN_PROGRESS;
public class SelenideLog implements LogEvent {
private final long startNs;
private long endNs;
private final String subject;
private final String element;
private EventStatus status = IN_PROGRESS;
private Throwable error;
public SelenideLog(String element, String subject) {
this.element = element;
this.subject = subject;
startNs = System.nanoTime();
}
@Override
public String getSubject() {
return this.subject;
}
@Override
public EventStatus getStatus() {
return this.status;
}
protected void setStatus(EventStatus status) {
this.status = status;
endNs = System.nanoTime();
}
@Override
public String getElement() {
return this.element;
}
@Override
public long getDuration() {
return (endNs - startNs) / 1000000;
}
@Override
public Throwable getError() {
return error;
}
public void setError(Throwable error) {
this.error = error;
}
@Override
public String toString() {
return "$(" + element + ") " + subject;
}
}