1 package org.apache.maven.doxia.module.rtf;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 class RomanNumerals
26 {
27 private static final int[] NUMBERS = {1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
28
29 private static final String[] UPPER_CASE_LETTERS =
30 {"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"};
31
32 private static final String[] LOWER_CASE_LETTERS =
33 {"m", "cm", "d", "cd", "c", "xc", "l", "xl", "x", "ix", "v", "iv", "i"};
34
35
36
37 static String toString( int n )
38 {
39 return toString( n, false );
40 }
41
42 static String toString( int n, boolean lowerCase )
43 {
44 StringBuilder roman = new StringBuilder();
45 String[] letters = lowerCase ? LOWER_CASE_LETTERS : UPPER_CASE_LETTERS;
46
47 for ( int i = 0; i < NUMBERS.length; ++i )
48 {
49 while ( n >= NUMBERS[i] )
50 {
51 roman.append( letters[i] );
52 n -= NUMBERS[i];
53 }
54 }
55
56 return roman.toString();
57 }
58 }