src/share/classes/com/sun/xml/internal/txw2/DatatypeWriter.java

changeset 50
42dfec6871f6
parent 45
31822b475baa
     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  }

mercurial