These classes are part of a program I am working on to convert Arabic numerals to Roman numerals and also the reverse. Do these classes look correct for representing objects in Java?
public class ArabicNumeral {
private final int value;
public ArabicNumeral(final int value) {
if (value < 0) {
throw new NumberFormatException("Numbers must be positive");
}
this.value = value;
}
public int getThousands() {
return getCardinalValueFor(1000);
}
public int getHundreds() {
return getCardinalValueFor(100);
}
public int getTens() {
return getCardinalValueFor(10);
}
public int getOnes() {
return getCardinalValueFor(1);
}
private int getCardinalValueFor(final int divisor) {
return value / divisor % 10;
}
}
public enum RomanNumerals {
I("I", 1),
V("V", 5),
X("X", 10),
L("L", 50),
C("C", 100),
D("D", 500),
M("M", 1000);
private final String symbol;
private final int value;
RomanNumerals(final String symbol, final int value) {
this.symbol = symbol;
this.value = value;
}
String symbol() {
return symbol;
}
int value() {
return value;
}
public RomanNumerals getMultipleOfFive() {
return this.ordinal() < RomanNumerals.values().length - 1
? RomanNumerals.values()[this.ordinal() + 1] : null;
}
public RomanNumerals getMultipleOfTen() {
return this.ordinal() < RomanNumerals.values().length - 1
? RomanNumerals.values()[this.ordinal() + 2] : null;
}
}
