diff options
Diffstat (limited to 'src/main/java/com/p4square/grow/model/Chapters.java')
-rw-r--r-- | src/main/java/com/p4square/grow/model/Chapters.java | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main/java/com/p4square/grow/model/Chapters.java b/src/main/java/com/p4square/grow/model/Chapters.java new file mode 100644 index 0000000..175b6fb --- /dev/null +++ b/src/main/java/com/p4square/grow/model/Chapters.java @@ -0,0 +1,46 @@ +package com.p4square.grow.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +import java.util.Optional; + +/** + * The chapters of the training section. + */ +public enum Chapters { + INTRODUCTION, + SEEKER, + BELIEVER, + DISCIPLE, + TEACHER, + LEADER; + + /** + * A case-insensitive version of Chapters.valueOf(). + */ + @JsonCreator + public static Chapters fromString(String s) { + return valueOf(s.toUpperCase()); + } + + @JsonValue + public String identifier() { + return toString().toLowerCase(); + } + + /** + * Convert the Chapter to a score, if possible. + */ + public Optional<Double> toScore() { + switch (this) { + case SEEKER: + case BELIEVER: + case DISCIPLE: + case TEACHER: + return Optional.of(Score.numericScore(this.toString())); + default: + return Optional.empty(); + } + } +} |