< prev index next >

test/jdk/java/nio/charset/StandardCharsets/Standard.java

Print this page
8200310: Avoid charset lookup machinery in java.nio.charset.StandardCharsets
Reviewed-by: sherman


  41 
  42     private final static String standardCharsets[] = {
  43         "US-ASCII", "ISO-8859-1", "UTF-8",
  44         "UTF-16BE", "UTF-16LE", "UTF-16" };
  45 
  46     public static void realMain(String[] args) {
  47         check(StandardCharsets.US_ASCII instanceof Charset);
  48         check(StandardCharsets.ISO_8859_1 instanceof Charset);
  49         check(StandardCharsets.UTF_8 instanceof Charset);
  50         check(StandardCharsets.UTF_16BE instanceof Charset);
  51         check(StandardCharsets.UTF_16LE instanceof Charset);
  52         check(StandardCharsets.UTF_16 instanceof Charset);
  53 
  54         check("US-ASCII".equals(StandardCharsets.US_ASCII.name()));
  55         check("ISO-8859-1".equals(StandardCharsets.ISO_8859_1.name()));
  56         check("UTF-8".equals(StandardCharsets.UTF_8.name()));
  57         check("UTF-16BE".equals(StandardCharsets.UTF_16BE.name()));
  58         check("UTF-16LE".equals(StandardCharsets.UTF_16LE.name()));
  59         check("UTF-16".equals(StandardCharsets.UTF_16.name()));
  60 







  61         Set<String> charsets = new HashSet<>();
  62         Field standardCharsetFields[] = StandardCharsets.class.getFields();
  63 
  64         for(Field charsetField : standardCharsetFields) {
  65             check(StandardCharsets.class == charsetField.getDeclaringClass());
  66             check(Modifier.isFinal(charsetField.getModifiers()));
  67             check(Modifier.isStatic(charsetField.getModifiers()));
  68             check(Modifier.isPublic(charsetField.getModifiers()));
  69             Object value;
  70             try {
  71                 value = charsetField.get(null);
  72             } catch(IllegalAccessException failure) {
  73                 unexpected(failure);
  74                 continue;
  75             }
  76             check(value instanceof Charset);
  77             charsets.add(((Charset)value).name());
  78         }
  79 
  80         check(charsets.containsAll(Arrays.asList(standardCharsets)));




  41 
  42     private final static String standardCharsets[] = {
  43         "US-ASCII", "ISO-8859-1", "UTF-8",
  44         "UTF-16BE", "UTF-16LE", "UTF-16" };
  45 
  46     public static void realMain(String[] args) {
  47         check(StandardCharsets.US_ASCII instanceof Charset);
  48         check(StandardCharsets.ISO_8859_1 instanceof Charset);
  49         check(StandardCharsets.UTF_8 instanceof Charset);
  50         check(StandardCharsets.UTF_16BE instanceof Charset);
  51         check(StandardCharsets.UTF_16LE instanceof Charset);
  52         check(StandardCharsets.UTF_16 instanceof Charset);
  53 
  54         check("US-ASCII".equals(StandardCharsets.US_ASCII.name()));
  55         check("ISO-8859-1".equals(StandardCharsets.ISO_8859_1.name()));
  56         check("UTF-8".equals(StandardCharsets.UTF_8.name()));
  57         check("UTF-16BE".equals(StandardCharsets.UTF_16BE.name()));
  58         check("UTF-16LE".equals(StandardCharsets.UTF_16LE.name()));
  59         check("UTF-16".equals(StandardCharsets.UTF_16.name()));
  60 
  61         check(Charset.forName("US-ASCII") == StandardCharsets.US_ASCII);
  62         check(Charset.forName("ISO-8859-1") == StandardCharsets.ISO_8859_1);
  63         check(Charset.forName("UTF-8") == StandardCharsets.UTF_8);
  64         check(Charset.forName("UTF-16BE") == StandardCharsets.UTF_16BE);
  65         check(Charset.forName("UTF-16LE") == StandardCharsets.UTF_16LE);
  66         check(Charset.forName("UTF-16") == StandardCharsets.UTF_16);
  67 
  68         Set<String> charsets = new HashSet<>();
  69         Field standardCharsetFields[] = StandardCharsets.class.getFields();
  70 
  71         for(Field charsetField : standardCharsetFields) {
  72             check(StandardCharsets.class == charsetField.getDeclaringClass());
  73             check(Modifier.isFinal(charsetField.getModifiers()));
  74             check(Modifier.isStatic(charsetField.getModifiers()));
  75             check(Modifier.isPublic(charsetField.getModifiers()));
  76             Object value;
  77             try {
  78                 value = charsetField.get(null);
  79             } catch(IllegalAccessException failure) {
  80                 unexpected(failure);
  81                 continue;
  82             }
  83             check(value instanceof Charset);
  84             charsets.add(((Charset)value).name());
  85         }
  86 
  87         check(charsets.containsAll(Arrays.asList(standardCharsets)));


< prev index next >