forked from AY2425S1-CS2103T-T12-4/tp
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
89 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
package seedu.address.model.game; | ||
|
||
import static java.util.Objects.requireNonNull; | ||
import static seedu.address.commons.util.AppUtil.checkArgument; | ||
|
||
/** | ||
* Describes the Person's skill level in a Game. | ||
*/ | ||
public class SkillLevel { | ||
|
||
private static final String MESSAGE_CONSTRAINTS = | ||
"Skill Level should not be blank"; | ||
|
||
/* | ||
* Regex expression matches Strings that contain at least one non-whitespace character. | ||
*/ | ||
private static final String VALIDATION_REGEX = "^(?!\\s*$).+"; | ||
|
||
private final String skillLevel; | ||
|
||
/** | ||
* Constructs a {@code SkillLevel}. | ||
* | ||
* @param skillLevel a valid skill level or rank. | ||
*/ | ||
public SkillLevel(String skillLevel) { | ||
requireNonNull(skillLevel); | ||
checkArgument(isValidSkillLevel(skillLevel), MESSAGE_CONSTRAINTS); | ||
this.skillLevel = skillLevel; | ||
} | ||
|
||
/** | ||
* Returns true if a given string is a valid SkillLevel. | ||
*/ | ||
public static boolean isValidSkillLevel(String test) { | ||
return test.matches(VALIDATION_REGEX); | ||
} | ||
|
||
/** | ||
* Getter for skillLevel field. | ||
*/ | ||
public String getSkillLevel() { | ||
return skillLevel; | ||
} | ||
|
||
@Override | ||
public boolean equals(Object other) { | ||
if (other == this) { | ||
return true; | ||
} | ||
|
||
// instanceof handles nulls | ||
if (!(other instanceof SkillLevel)) { | ||
return false; | ||
} | ||
|
||
SkillLevel otherName = (SkillLevel) other; | ||
return skillLevel.equals(otherName.skillLevel); | ||
} | ||
|
||
@Override | ||
public int hashCode() { | ||
return skillLevel.hashCode(); | ||
} | ||
|
||
/** | ||
* Format state as text for viewing. | ||
*/ | ||
public String toString() { | ||
return skillLevel; | ||
} | ||
|
||
} |