diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/persistence/CSVMasterDatabase.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/design/persistence/CSVMasterDatabase.java b/src/main/java/design/persistence/CSVMasterDatabase.java index 94ac470..fe89191 100644 --- a/src/main/java/design/persistence/CSVMasterDatabase.java +++ b/src/main/java/design/persistence/CSVMasterDatabase.java @@ -22,7 +22,7 @@ public class CSVMasterDatabase implements MasterDatabase { private final CsvMapper mapper; private final File file; - public CSVMasterDatabase(String filename) throws IOException { + public CSVMasterDatabase(String filename) { this.cache = new ArrayList<>(); this.mapper = new CsvMapper(); this.file = new File(filename); @@ -31,7 +31,11 @@ public class CSVMasterDatabase implements MasterDatabase { module.addDeserializer(Course.class, new CourseDeserializer()); mapper.registerModule(module); - load(); + try { + load(); + } catch (IOException ex) { + throw new RuntimeException(ex); + } } public void load() throws IOException { @@ -49,15 +53,18 @@ public class CSVMasterDatabase implements MasterDatabase { } @Override - public Course getCourse(String name) { - return null; + public Course getCourse(int id) { + return cache.get(id); } private static class CourseDeserializer extends JsonDeserializer<Course> { + int curID = 0; + @Override public Course deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { ObjectNode node = p.getCodec().readTree(p); + int id = curID++; String name = node.get("Course Name").asText(); double difficulty = node.get("Difficulty Rating").asDouble(); String location = node.get("Location").asText(); @@ -70,7 +77,7 @@ public class CSVMasterDatabase implements MasterDatabase { holeList.add(new Hole(i + 1, Integer.parseInt(parValues[i].trim()))); } - return new Course(name, (int) difficulty, location, holes, totalPar, holeList); + return new Course(id, name, (int) difficulty, location, holes, totalPar, holeList); } } } |
