package no.difi.datahotel.util;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.google.gson.Gson;
public class Timestamp {
private static Logger logger = Logger.getLogger(Timestamp.class.getSimpleName());
private static Gson gson = new Gson();
private File tsfile;
private Map<String, String> data = new HashMap<String, String>();
public Timestamp(String... path) {
this(Filesystem.getFile(path));
}
@SuppressWarnings("unchecked")
public Timestamp(File tsfile) {
this.tsfile = tsfile;
if (tsfile.exists()) {
try {
FileReader reader = new FileReader(tsfile);
data = (Map<String, String>) gson.fromJson(reader, Map.class);
reader.close();
} catch (Exception e) {
logger.log(Level.WARNING, e.getMessage());
}
}
}
public void setTimestamp(long timestamp) {
data.put("timestamp", String.valueOf(timestamp));
}
public long getTimestamp() {
return data.containsKey("timestamp") ? Long.parseLong(data.get("timestamp")) : -1;
}
public void set(String key, String value) {
data.put(key, value);
}
public void set(String key, long value) {
set(key, String.valueOf(value));
}
public String get(String key) {
return data.get(key);
}
public long getLong(String key) {
return data.containsKey(key) ? Long.parseLong(data.get(key)) : 0;
}
public void save() {
try {
FileWriter writer = new FileWriter(tsfile);
gson.toJson(data, writer);
writer.close();
} catch (Exception e) {
logger.log(Level.WARNING, e.getMessage());
}
}
}