diff options
Diffstat (limited to 'src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java')
-rw-r--r-- | src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java b/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java new file mode 100644 index 0000000..ea0c0dc --- /dev/null +++ b/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java @@ -0,0 +1,35 @@ +package io.trygvis.esper.testing.core.badge; + +import io.trygvis.esper.testing.core.db.*; +import org.codehaus.jackson.map.*; +import org.slf4j.*; + +import java.io.*; + +public class BadgeService { + private final Logger logger = LoggerFactory.getLogger(getClass()); + + private static final ObjectMapper objectMapper = new ObjectMapper(); + + public UnbreakableBadgeProgress unbreakable(PersonBadgeProgressDto dto) { + String state = dto.state; + + try { + return objectMapper.readValue(state, UnbreakableBadgeProgress.class); + } catch (IOException e) { + logger.error("Could not de-serialize badge state: {}", state); + throw new RuntimeException(e); + } + } + + public String serialize(UnbreakableBadgeProgress badge) { + try { + CharArrayWriter writer = new CharArrayWriter(); + objectMapper.writeValue(writer, badge); + return writer.toString(); + } catch (IOException e) { + logger.error("Could not serialize badge.", e); + throw new RuntimeException(e); + } + } +} |