1.1 --- a/src/share/classes/com/sun/xml/internal/txw2/DatatypeWriter.java Mon Apr 20 15:25:02 2009 -0700 1.2 +++ b/src/share/classes/com/sun/xml/internal/txw2/DatatypeWriter.java Mon May 04 21:10:41 2009 -0700 1.3 @@ -25,6 +25,9 @@ 1.4 1.5 package com.sun.xml.internal.txw2; 1.6 1.7 +import java.util.AbstractList; 1.8 +import java.util.Collections; 1.9 +import java.util.List; 1.10 import javax.xml.namespace.QName; 1.11 1.12 /** 1.13 @@ -53,50 +56,60 @@ 1.14 */ 1.15 void print(DT dt, NamespaceResolver resolver, StringBuilder buf); 1.16 1.17 + static final List<DatatypeWriter<?>> BUILTIN = Collections.unmodifiableList(new AbstractList() { 1.18 1.19 - static final DatatypeWriter<?>[] BUILDIN = new DatatypeWriter<?>[] { 1.20 - new DatatypeWriter<String>() { 1.21 - public Class<String> getType() { 1.22 - return String.class; 1.23 + private DatatypeWriter<?>[] BUILTIN_ARRAY = new DatatypeWriter<?>[] { 1.24 + new DatatypeWriter<String>() { 1.25 + public Class<String> getType() { 1.26 + return String.class; 1.27 + } 1.28 + public void print(String s, NamespaceResolver resolver, StringBuilder buf) { 1.29 + buf.append(s); 1.30 + } 1.31 + }, 1.32 + new DatatypeWriter<Integer>() { 1.33 + public Class<Integer> getType() { 1.34 + return Integer.class; 1.35 + } 1.36 + public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) { 1.37 + buf.append(i); 1.38 + } 1.39 + }, 1.40 + new DatatypeWriter<Float>() { 1.41 + public Class<Float> getType() { 1.42 + return Float.class; 1.43 + } 1.44 + public void print(Float f, NamespaceResolver resolver, StringBuilder buf) { 1.45 + buf.append(f); 1.46 + } 1.47 + }, 1.48 + new DatatypeWriter<Double>() { 1.49 + public Class<Double> getType() { 1.50 + return Double.class; 1.51 + } 1.52 + public void print(Double d, NamespaceResolver resolver, StringBuilder buf) { 1.53 + buf.append(d); 1.54 + } 1.55 + }, 1.56 + new DatatypeWriter<QName>() { 1.57 + public Class<QName> getType() { 1.58 + return QName.class; 1.59 + } 1.60 + public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) { 1.61 + String p = resolver.getPrefix(qn.getNamespaceURI()); 1.62 + if(p.length()!=0) 1.63 + buf.append(p).append(':'); 1.64 + buf.append(qn.getLocalPart()); 1.65 + } 1.66 } 1.67 - public void print(String s, NamespaceResolver resolver, StringBuilder buf) { 1.68 - buf.append(s); 1.69 - } 1.70 - }, 1.71 - new DatatypeWriter<Integer>() { 1.72 - public Class<Integer> getType() { 1.73 - return Integer.class; 1.74 - } 1.75 - public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) { 1.76 - buf.append(i); 1.77 - } 1.78 - }, 1.79 - new DatatypeWriter<Float>() { 1.80 - public Class<Float> getType() { 1.81 - return Float.class; 1.82 - } 1.83 - public void print(Float f, NamespaceResolver resolver, StringBuilder buf) { 1.84 - buf.append(f); 1.85 - } 1.86 - }, 1.87 - new DatatypeWriter<Double>() { 1.88 - public Class<Double> getType() { 1.89 - return Double.class; 1.90 - } 1.91 - public void print(Double d, NamespaceResolver resolver, StringBuilder buf) { 1.92 - buf.append(d); 1.93 - } 1.94 - }, 1.95 - new DatatypeWriter<QName>() { 1.96 - public Class<QName> getType() { 1.97 - return QName.class; 1.98 - } 1.99 - public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) { 1.100 - String p = resolver.getPrefix(qn.getNamespaceURI()); 1.101 - if(p.length()!=0) 1.102 - buf.append(p).append(':'); 1.103 - buf.append(qn.getLocalPart()); 1.104 - } 1.105 + }; 1.106 + 1.107 + public DatatypeWriter<?> get(int n) { 1.108 + return BUILTIN_ARRAY[n]; 1.109 } 1.110 - }; 1.111 + 1.112 + public int size() { 1.113 + return BUILTIN_ARRAY.length; 1.114 + } 1.115 + }); 1.116 }