Counter.java
The snippet can be accessed without any authentication.
Authored by
joel.cavat
Edited
Counter.java 1.57 KiB
public class Counter {
private int counter;
private Counter(int i) {
this.safeSetCounter(i);
}
public void click() {
this.safeSetCounter(this.counter + 1);
}
private void safeSetCounter(int i) {
this.counter = i % 10000;
}
public void reset() {
this.counter = 0;
}
public int value() {
return this.counter;
}
public static Counter zero() {
return new Counter(0);
}
/**
* Returns a new Counter with de defined value included between 0 and 9999. Throws an IllegalArgumentException
* if the value is out of the range
*
* @param value the initial value between 0 and 9999
* @return a counter with the given value set
* @throws IllegalArgumentExcpetion if value is not included in the specific range
*/
public static Counter withValue(int value) {
if (value < 0 || value > 9999) {
/* Nous préférons retourner une exception si l'utilisateur fait une bêtise */
throw new IllegalArgumentException("Value must be between 0 and 9999");
}
return new Counter(value);
}
private String toFourDigits(int i) {
final String tooMuchDigits = ("0000" + this.counter);
return tooMuchDigits.substring( tooMuchDigits.length()-4, tooMuchDigits.length() );
}
public String toString() {
return "Counter(" + toFourDigits(this.counter) + ")";
}
public static void main(String[] args) {
Counter counter = Counter.withValue(10);
System.out.println( counter );
}
}
Please register or sign in to comment