package pctelelog; import java.io.IOException; import org.codehaus.jackson.JsonGenerationException; import org.codehaus.jackson.JsonNode; import org.codehaus.jackson.JsonParseException; import org.codehaus.jackson.map.JsonMappingException; import org.codehaus.jackson.map.ObjectMapper; import pctelelog.events.AbstractEvent; /** * The EventSerializer will serialize an event and deserialize it back * into its original concrete event. * * @author Kei * */ public class EventSerializer { static private final ObjectMapper mapper = new ObjectMapper(); static public String serialize(AbstractEvent event) throws JsonGenerationException, JsonMappingException, IOException { String json = mapper.writeValueAsString(event); return json; } static public AbstractEvent deserialize(String json) throws JsonParseException, JsonMappingException, IOException { AbstractEvent event = mapper.readValue(json, AbstractEvent.class); return event; } static public AbstractEvent deserialize(JsonNode node) throws JsonParseException, JsonMappingException, IOException { AbstractEvent event = mapper.readValue(node, AbstractEvent.class); return event; } }