1 package com.thoughtworks.xstream.converters.extended;
2
3 import com.thoughtworks.xstream.converters.Converter;
4 import com.thoughtworks.xstream.converters.ConverterLookup;
5 import com.thoughtworks.xstream.objecttree.ObjectTree;
6 import com.thoughtworks.xstream.xml.XMLReader;
7 import com.thoughtworks.xstream.xml.XMLWriter;
8
9 import java.awt.*;
10
11 public class ColorConverter implements Converter {
12 public boolean canConvert(Class type) {
13 return type.equals(Color.class);
14 }
15
16 public void toXML(ObjectTree objectGraph, XMLWriter xmlWriter, ConverterLookup converterLookup) {
17 Color color = (Color) objectGraph.get();
18 write("red", color.getRed(), xmlWriter);
19 write("green", color.getGreen(), xmlWriter);
20 write("blue", color.getBlue(), xmlWriter);
21 write("alpha", color.getAlpha(), xmlWriter);
22 }
23
24 private void write(String fieldName, int value, XMLWriter xmlWriter) {
25 xmlWriter.startElement(fieldName);
26 xmlWriter.writeText(String.valueOf(value));
27 xmlWriter.endElement();
28 }
29
30 public void fromXML(ObjectTree objectGraph, XMLReader xmlReader, ConverterLookup converterLookup, Class requiredType) {
31 Color color = new Color(
32 read("red", xmlReader),
33 read("green", xmlReader),
34 read("blue", xmlReader),
35 read("alpha", xmlReader)
36 );
37 objectGraph.set(color);
38 }
39
40 private int read(String field, XMLReader reader) {
41 reader.child(field);
42 int result = Integer.parseInt(reader.text());
43 reader.pop();
44 return result;
45 }
46 }
This page was automatically generated by Maven