From 7838a06e5521db39aee8b3b87785fcb5e32cd7ad Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Thu, 10 Jan 2013 07:32:02 +0100 Subject: o Creating a single (awarded) badge view. --- .../esper/testing/core/badge/BadgeService.java | 39 ++++++++++++++++++++-- .../esper/testing/core/badge/UnbreakableBadge.java | 6 ++++ .../trygvis/esper/testing/core/db/PersonDao.java | 8 ++--- 3 files changed, 45 insertions(+), 8 deletions(-) (limited to 'src/main/java/io/trygvis/esper/testing/core') 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 index bf06fbb..d747d5c 100644 --- a/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java +++ b/src/main/java/io/trygvis/esper/testing/core/badge/BadgeService.java @@ -15,6 +15,39 @@ public class BadgeService { this.objectMapper = objectMapper; } + public UnbreakableBadge unbreakable(PersonalBadgeDto dto) { + return getProgress(dto.state, UnbreakableBadge.class); + } + + // ----------------------------------------------------------------------- + // Badge + // ----------------------------------------------------------------------- + + public PersonalBadge badge(PersonalBadgeDto dto) { + switch (dto.type) { + case UNBREAKABLE: + return getProgress(dto.state, UnbreakableBadge.class); + } + + throw new RuntimeException("Unknown badge type: " + dto.type); + } + + public T badge(PersonalBadgeDto dto, Class klass) { + switch (dto.type) { + case UNBREAKABLE: + if(!klass.equals(UnbreakableBadgeProgress.class)) { + throw new RuntimeException("Badge is not of the expected type: UNBREAKABLE."); + } + return getProgress(dto.state, klass); + } + + throw new RuntimeException("Unknown badge type: " + dto.type); + } + + // ----------------------------------------------------------------------- + // Badge Progress + // ----------------------------------------------------------------------- + public BadgeProgress badgeProgress(PersonBadgeProgressDto dto) { switch (PersonalBadgeDto.BadgeType.valueOf(dto.badge)) { case UNBREAKABLE: @@ -36,9 +69,9 @@ public class BadgeService { throw new RuntimeException("Unknown badge type: " + dto.badge); } - public UnbreakableBadge unbreakable(PersonalBadgeDto dto) { - return getProgress(dto.state, UnbreakableBadge.class); - } + // ----------------------------------------------------------------------- + // + // ----------------------------------------------------------------------- public String serialize(Object badge) { try { diff --git a/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java b/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java index 6b1c78d..f2d69c4 100644 --- a/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java +++ b/src/main/java/io/trygvis/esper/testing/core/badge/UnbreakableBadge.java @@ -12,6 +12,12 @@ class UnbreakableBadge extends PersonalBadge { public final List builds; + @SuppressWarnings("UnusedDeclaration") + private UnbreakableBadge() { + super(null, 0); + builds = null; + } + UnbreakableBadge(Uuid person, int level, List builds) { super(person, level); this.builds = builds; diff --git a/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java b/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java index 4b22100..58af119 100755 --- a/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java +++ b/src/main/java/io/trygvis/esper/testing/core/db/PersonDao.java @@ -175,12 +175,10 @@ public class PersonDao { } } - public SqlOption selectBadge(UUID person, BadgeType type, int level) throws SQLException { - try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE + " FROM person_badge WHERE person=? AND name=? AND level=? LIMIT 1")) { + public SqlOption selectBadge(Uuid uuid) throws SQLException { + try (PreparedStatement s = c.prepareStatement("SELECT " + PERSON_BADGE + " FROM person_badge WHERE uuid=?")) { int i = 1; - s.setString(i++, person.toString()); - s.setString(i++, type.toString()); - s.setInt(i, level); + s.setString(i, uuid.toUuidString()); return fromRs(s.executeQuery()).map(personBadge); } } -- cgit v1.2.3