2018-11-15 19:50:46 +01:00
|
|
|
package de.vanitasvitae.imi.codes.types;
|
2018-11-15 17:54:34 +01:00
|
|
|
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
2018-11-15 19:50:46 +01:00
|
|
|
import de.vanitasvitae.imi.codes.input.InputValidator;
|
|
|
|
import de.vanitasvitae.imi.codes.input.InvalidOptionException;
|
|
|
|
|
2018-11-15 17:54:34 +01:00
|
|
|
/**
|
|
|
|
* Sub-class of {@link CharSequence}, which can only represent char sequences of length 3 from the alphabet [a-zA-Z0-9].
|
|
|
|
*/
|
|
|
|
public class StudyNumber extends BoundedCharSequence {
|
|
|
|
|
|
|
|
private static final Pattern REGEX = Pattern.compile(InputValidator.REGEX_ALPHABET + "{3}");
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Create a new {@link StudyNumber} sequence. The constructor checks, whether the input String is of length 3 and from
|
|
|
|
* the alphabet [a-zA-Z9-0].
|
|
|
|
*
|
|
|
|
* @param value input string
|
|
|
|
* @throws InvalidOptionException if the input doesn't match the regex
|
|
|
|
*/
|
2018-11-15 19:50:46 +01:00
|
|
|
public StudyNumber(String value) throws InvalidOptionException {
|
2018-11-15 17:54:34 +01:00
|
|
|
super(REGEX, value);
|
|
|
|
}
|
|
|
|
}
|