// Path: app/src/main/java/de/codecentric/dao/TimeslotDao.java
// public interface TimeslotDao {
// 
//     List<Timeslot> getTimeslots(String day);
// 
//     List<Day> getConferenceDays();
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Day.java
// public class Day {
// 
//     private String shortName;
//     private List<Timeslot> timeslots;
// 
//     @JsonCreator
//     public Day(@JsonProperty("shortName") String shortName, @JsonProperty("timeslots") List<Timeslot> timeslots) {
//         this.shortName = shortName;
//         this.timeslots = timeslots;
//     }
// 
//     public String getShortName() {
//         return shortName;
//     }
// 
//     public List<Timeslot> getTimeslots() {
//         return timeslots;
//     }
// 
//     public String getShortNameWithoutDots() {
//         return shortName.replace(".", "");
//     }
// 
//     @Override
//     public String toString() {
//         return "Day [shortName=" + shortName + ", timeslots=" + timeslots + "]";
//     }
// 
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Timeslot.java
// public class Timeslot {
// 
//     private String start;
//     private String end;
// 
//     @JsonCreator
//     public Timeslot(@JsonProperty("start") String start, @JsonProperty("end") String end) {
//         this(start);
//         this.end = end;
//     }
// 
//     public Timeslot(String start) {
//         this.start = start;
//     }
// 
//     public String getStart() {
//         return start;
//     }
// 
//     public String getEnd() {
//         return end;
//     }
// 
//     @Override
//     public String toString() {
//         String endToConcatenate = end != null ? " - " + end : "";
//         return start + endToConcatenate;
//     }
// }


import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
import de.codecentric.dao.TimeslotDao;
import de.codecentric.domain.Day;
import de.codecentric.domain.Timeslot;

package de.codecentric.dao.impl;




@Repository
public class JsonTimeslotDao implements TimeslotDao {

    private static final Logger LOGGER = Logger.getLogger(JsonTimeslotDao.class);

    @Autowired
    private ObjectMapper jsonMapper;


// Path: app/src/main/java/de/codecentric/dao/TimeslotDao.java
// public interface TimeslotDao {
// 
//     List<Timeslot> getTimeslots(String day);
// 
//     List<Day> getConferenceDays();
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Day.java
// public class Day {
// 
//     private String shortName;
//     private List<Timeslot> timeslots;
// 
//     @JsonCreator
//     public Day(@JsonProperty("shortName") String shortName, @JsonProperty("timeslots") List<Timeslot> timeslots) {
//         this.shortName = shortName;
//         this.timeslots = timeslots;
//     }
// 
//     public String getShortName() {
//         return shortName;
//     }
// 
//     public List<Timeslot> getTimeslots() {
//         return timeslots;
//     }
// 
//     public String getShortNameWithoutDots() {
//         return shortName.replace(".", "");
//     }
// 
//     @Override
//     public String toString() {
//         return "Day [shortName=" + shortName + ", timeslots=" + timeslots + "]";
//     }
// 
// }
// 
// Path: app/src/main/java/de/codecentric/domain/Timeslot.java
// public class Timeslot {
// 
//     private String start;
//     private String end;
// 
//     @JsonCreator
//     public Timeslot(@JsonProperty("start") String start, @JsonProperty("end") String end) {
//         this(start);
//         this.end = end;
//     }
// 
//     public Timeslot(String start) {
//         this.start = start;
//     }
// 
//     public String getStart() {
//         return start;
//     }
// 
//     public String getEnd() {
//         return end;
//     }
// 
//     @Override
//     public String toString() {
//         String endToConcatenate = end != null ? " - " + end : "";
//         return start + endToConcatenate;
//     }
// }


// Path: app/src/main/java/de/codecentric/dao/impl/JsonTimeslotDao.java
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Repository;
import de.codecentric.dao.TimeslotDao;
import de.codecentric.domain.Day;
import de.codecentric.domain.Timeslot;

package de.codecentric.dao.impl;




@Repository
public class JsonTimeslotDao implements TimeslotDao {

    private static final Logger LOGGER = Logger.getLogger(JsonTimeslotDao.class);

    @Autowired
    private ObjectMapper jsonMapper;


    private static List<Day> days;
