51 * @param resolver |
54 * @param resolver |
52 * allows the converter to declare additional namespace prefixes. |
55 * allows the converter to declare additional namespace prefixes. |
53 */ |
56 */ |
54 void print(DT dt, NamespaceResolver resolver, StringBuilder buf); |
57 void print(DT dt, NamespaceResolver resolver, StringBuilder buf); |
55 |
58 |
|
59 static final List<DatatypeWriter<?>> BUILTIN = Collections.unmodifiableList(new AbstractList() { |
56 |
60 |
57 static final DatatypeWriter<?>[] BUILDIN = new DatatypeWriter<?>[] { |
61 private DatatypeWriter<?>[] BUILTIN_ARRAY = new DatatypeWriter<?>[] { |
58 new DatatypeWriter<String>() { |
62 new DatatypeWriter<String>() { |
59 public Class<String> getType() { |
63 public Class<String> getType() { |
60 return String.class; |
64 return String.class; |
|
65 } |
|
66 public void print(String s, NamespaceResolver resolver, StringBuilder buf) { |
|
67 buf.append(s); |
|
68 } |
|
69 }, |
|
70 new DatatypeWriter<Integer>() { |
|
71 public Class<Integer> getType() { |
|
72 return Integer.class; |
|
73 } |
|
74 public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) { |
|
75 buf.append(i); |
|
76 } |
|
77 }, |
|
78 new DatatypeWriter<Float>() { |
|
79 public Class<Float> getType() { |
|
80 return Float.class; |
|
81 } |
|
82 public void print(Float f, NamespaceResolver resolver, StringBuilder buf) { |
|
83 buf.append(f); |
|
84 } |
|
85 }, |
|
86 new DatatypeWriter<Double>() { |
|
87 public Class<Double> getType() { |
|
88 return Double.class; |
|
89 } |
|
90 public void print(Double d, NamespaceResolver resolver, StringBuilder buf) { |
|
91 buf.append(d); |
|
92 } |
|
93 }, |
|
94 new DatatypeWriter<QName>() { |
|
95 public Class<QName> getType() { |
|
96 return QName.class; |
|
97 } |
|
98 public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) { |
|
99 String p = resolver.getPrefix(qn.getNamespaceURI()); |
|
100 if(p.length()!=0) |
|
101 buf.append(p).append(':'); |
|
102 buf.append(qn.getLocalPart()); |
|
103 } |
61 } |
104 } |
62 public void print(String s, NamespaceResolver resolver, StringBuilder buf) { |
105 }; |
63 buf.append(s); |
106 |
64 } |
107 public DatatypeWriter<?> get(int n) { |
65 }, |
108 return BUILTIN_ARRAY[n]; |
66 new DatatypeWriter<Integer>() { |
|
67 public Class<Integer> getType() { |
|
68 return Integer.class; |
|
69 } |
|
70 public void print(Integer i, NamespaceResolver resolver, StringBuilder buf) { |
|
71 buf.append(i); |
|
72 } |
|
73 }, |
|
74 new DatatypeWriter<Float>() { |
|
75 public Class<Float> getType() { |
|
76 return Float.class; |
|
77 } |
|
78 public void print(Float f, NamespaceResolver resolver, StringBuilder buf) { |
|
79 buf.append(f); |
|
80 } |
|
81 }, |
|
82 new DatatypeWriter<Double>() { |
|
83 public Class<Double> getType() { |
|
84 return Double.class; |
|
85 } |
|
86 public void print(Double d, NamespaceResolver resolver, StringBuilder buf) { |
|
87 buf.append(d); |
|
88 } |
|
89 }, |
|
90 new DatatypeWriter<QName>() { |
|
91 public Class<QName> getType() { |
|
92 return QName.class; |
|
93 } |
|
94 public void print(QName qn, NamespaceResolver resolver, StringBuilder buf) { |
|
95 String p = resolver.getPrefix(qn.getNamespaceURI()); |
|
96 if(p.length()!=0) |
|
97 buf.append(p).append(':'); |
|
98 buf.append(qn.getLocalPart()); |
|
99 } |
|
100 } |
109 } |
101 }; |
110 |
|
111 public int size() { |
|
112 return BUILTIN_ARRAY.length; |
|
113 } |
|
114 }); |
102 } |
115 } |