--- a/jaxws/src/share/classes/com/sun/xml/internal/txw2/DatatypeWriter.java Mon Apr 20 15:25:02 2009 -0700
+++ b/jaxws/src/share/classes/com/sun/xml/internal/txw2/DatatypeWriter.java Mon May 04 21:10:41 2009 -0700
@@ -25,6 +25,9 @@
package com.sun.xml.internal.txw2;
+import java.util.AbstractList;
+import java.util.Collections;
+import java.util.List;
import javax.xml.namespace.QName;
/**
@@ -53,50 +56,60 @@
*/
void print(DT dt, NamespaceResolver resolver, StringBuilder buf);
+ static final List<DatatypeWriter<?>> BUILTIN = Collections.unmodifiableList(new AbstractList() {
- static final DatatypeWriter<?>[] BUILDIN = new DatatypeWriter<?>[] {
- new DatatypeWriter<String>() {
- public Class<String> getType() {
- return String.class;
- }
- public void print(String s, NamespaceResolver resolver, StringBuilder buf) {
- buf.append(s);
- }
- },
- new DatatypeWriter<Integer>() {
- public Class<Integer> getType() {
- return Integer.class;
- }
- public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) {
- buf.append(i);
- }
- },
- new DatatypeWriter<Float>() {
- public Class<Float> getType() {
- return Float.class;
+ private DatatypeWriter<?>[] BUILTIN_ARRAY = new DatatypeWriter<?>[] {
+ new DatatypeWriter<String>() {
+ public Class<String> getType() {
+ return String.class;
+ }
+ public void print(String s, NamespaceResolver resolver, StringBuilder buf) {
+ buf.append(s);
+ }
+ },
+ new DatatypeWriter<Integer>() {
+ public Class<Integer> getType() {
+ return Integer.class;
+ }
+ public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) {
+ buf.append(i);
+ }
+ },
+ new DatatypeWriter<Float>() {
+ public Class<Float> getType() {
+ return Float.class;
+ }
+ public void print(Float f, NamespaceResolver resolver, StringBuilder buf) {
+ buf.append(f);
+ }
+ },
+ new DatatypeWriter<Double>() {
+ public Class<Double> getType() {
+ return Double.class;
+ }
+ public void print(Double d, NamespaceResolver resolver, StringBuilder buf) {
+ buf.append(d);
+ }
+ },
+ new DatatypeWriter<QName>() {
+ public Class<QName> getType() {
+ return QName.class;
+ }
+ public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) {
+ String p = resolver.getPrefix(qn.getNamespaceURI());
+ if(p.length()!=0)
+ buf.append(p).append(':');
+ buf.append(qn.getLocalPart());
+ }
}
- public void print(Float f, NamespaceResolver resolver, StringBuilder buf) {
- buf.append(f);
- }
- },
- new DatatypeWriter<Double>() {
- public Class<Double> getType() {
- return Double.class;
- }
- public void print(Double d, NamespaceResolver resolver, StringBuilder buf) {
- buf.append(d);
- }
- },
- new DatatypeWriter<QName>() {
- public Class<QName> getType() {
- return QName.class;
- }
- public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) {
- String p = resolver.getPrefix(qn.getNamespaceURI());
- if(p.length()!=0)
- buf.append(p).append(':');
- buf.append(qn.getLocalPart());
- }
+ };
+
+ public DatatypeWriter<?> get(int n) {
+ return BUILTIN_ARRAY[n];
}
- };
+
+ public int size() {
+ return BUILTIN_ARRAY.length;
+ }
+ });
}