dnet-docker/dnet-app/libs/dnet-wf-common/src/main/java/eu/dnetlib/wfs/procs/Token.java

120 lines
2.1 KiB
Java

package eu.dnetlib.wfs.procs;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* Created by michele on 19/11/15.
*/
public class Token {
private final String id;
private final Map<String, Object> env = new HashMap<>();
private String progressMessage;
private final LocalDateTime startDate;
private LocalDateTime endDate;
private boolean active;
private Throwable error;
public Token() {
id = "token-" + UUID.randomUUID();
startDate = LocalDateTime.now();
active = true;
error = null;
}
public String getId() {
return id;
}
public Map<String, Object> getEnv() {
return env;
}
public void clearEnv() {
env.clear();
}
public void addEnvAttributes(final Map<String, Object> map) {
if (map != null) {
env.putAll(map);
}
}
public void setEnvAttribute(final String name, final Object value) {
env.put(name, value);
}
public Object getEnvAttribute(final String name) {
return env.get(name);
}
public <T> T getEnvAttribute(final String name, final Class<T> clazz) {
return clazz.cast(env.get(name));
}
public boolean hasEnvAttribute(final String name) {
return env.containsKey(name);
}
public Object removeEnvAttribute(final String name) {
return env.remove(name);
}
public LocalDateTime getStartDate() {
return startDate;
}
public LocalDateTime getEndDate() {
return endDate;
}
public void setEndDate(final LocalDateTime endDate) {
this.endDate = endDate;
}
public boolean isActive() {
return active;
}
public void setActive(final boolean active) {
this.active = active;
}
public boolean isFailed() {
return error != null;
}
public void release() {
setEndDate(LocalDateTime.now());
setActive(false);
}
public void releaseAsFailed(final Throwable e) {
setError(e);
release();
}
public String getProgressMessage() {
return progressMessage;
}
public void setProgressMessage(final String progressMessage) {
this.progressMessage = progressMessage;
}
public Throwable getError() {
return error;
}
public void setError(final Throwable error) {
this.error = error;
}
}