/** * */ package logbook.data; import java.io.File; import java.io.IOException; import java.io.StringReader; import java.nio.charset.Charset; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import javax.json.Json; import javax.json.JsonObject; import javax.json.JsonReader; import org.apache.commons.io.FileUtils; import org.apache.commons.io.FilenameUtils; /** * @author Nekopanda * */ public class TestData implements Data { private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd_HHmmss.SSS"); private final Date date; private final DataType type; private final JsonObject json; public TestData(String filepath) throws ParseException, IOException { String filename = FilenameUtils.getBaseName(filepath); int splitpos = filename.indexOf('_'); splitpos = filename.indexOf('_', splitpos + 1); String timeString = filename.substring(0, splitpos); String typeString = filename.substring(splitpos + 1); this.date = format.parse(timeString); this.type = DataType.valueOf(typeString); String jsonString = FileUtils.readFileToString(new File(filepath), Charset.forName("UTF-8")); JsonReader jsonreader = Json.createReader(new StringReader(jsonString)); this.json = jsonreader.readObject(); } @Override public DataType getDataType() { return this.type; } @Override public Date getCreateDate() { return this.date; } @Override public JsonObject getJsonObject() { return this.json; } @Override public String getField(String key) { if ((this.type == DataType.START) && key.equals("api_deck_id")) { // 出撃は第一にしておく return "1"; } return "-1"; } }