1 6 package com.thoughtriver.open.vectorvisuals.persistence; 7 8 import java.awt.*; 9 import java.awt.geom.*; 10 import java.beans.*; 11 import java.io.*; 12 13 import com.thoughtriver.open.vectorvisuals.*; 14 15 24 public class PersistenceManager { 25 26 27 private static final PersistenceManager instance = new PersistenceManager(); 28 29 34 public static PersistenceManager getInstance() { 35 return instance; 36 } 37 38 42 protected PersistenceManager() { 43 } 44 45 53 public void prepareEncoder(final Encoder encoder) { 54 55 PersistenceDelegate delegate = new AffineTransformPersistenceDelegate(); 56 encoder.setPersistenceDelegate(AffineTransform.class, delegate); 57 58 delegate = new AreaPersistenceDelegate(); 59 encoder.setPersistenceDelegate(Area.class, delegate); 60 61 delegate = new PolygonPersistenceDelegate(); 62 encoder.setPersistenceDelegate(Polygon.class, delegate); 63 64 delegate = new LinePersistenceDelegate(); 65 encoder.setPersistenceDelegate(Line2D.Double.class, delegate); 66 encoder.setPersistenceDelegate(Line2D.Float.class, delegate); 67 68 delegate = new QuadCurvePersistenceDelegate(); 69 encoder.setPersistenceDelegate(QuadCurve2D.Double.class, delegate); 70 encoder.setPersistenceDelegate(QuadCurve2D.Float.class, delegate); 71 72 delegate = new CubicCurvePersistenceDelegate(); 73 encoder.setPersistenceDelegate(CubicCurve2D.Double.class, delegate); 74 encoder.setPersistenceDelegate(CubicCurve2D.Float.class, delegate); 75 76 delegate = new RectangularShapePersistenceDelegate(); 77 encoder.setPersistenceDelegate(Rectangle2D.Double.class, delegate); 78 encoder.setPersistenceDelegate(Rectangle2D.Float.class, delegate); 79 encoder.setPersistenceDelegate(Arc2D.Double.class, delegate); 80 encoder.setPersistenceDelegate(Arc2D.Float.class, delegate); 81 encoder.setPersistenceDelegate(Ellipse2D.Double.class, delegate); 82 encoder.setPersistenceDelegate(Ellipse2D.Float.class, delegate); 83 84 delegate = new RoundRectanglePersistenceDelegate(); 85 encoder.setPersistenceDelegate(RoundRectangle2D.Double.class, delegate); 86 encoder.setPersistenceDelegate(RoundRectangle2D.Float.class, delegate); 87 88 delegate = new BrushPersistenceDelegate(); 89 encoder.setPersistenceDelegate(Brush.class, delegate); 90 91 delegate = new ColorPersistenceDelegate(); 92 encoder.setPersistenceDelegate(Color.class, delegate); 93 94 delegate = new GradientPaintPersistenceDelegate(); 95 encoder.setPersistenceDelegate(GradientPaint.class, delegate); 96 97 delegate = new TexturePaintPersistenceDelegate(); 98 encoder.setPersistenceDelegate(TexturePaint.class, delegate); 99 100 delegate = new AlphaCompositePersistenceDelegate(); 101 encoder.setPersistenceDelegate(AlphaComposite.class, delegate); 102 103 delegate = new BasicStrokePersistenceDelegate(); 104 encoder.setPersistenceDelegate(BasicStroke.class, delegate); 105 106 delegate = new VisualObjectPersistenceDelegate(); 107 encoder.setPersistenceDelegate(VisualObject.class, delegate); 108 109 delegate = new VisualContainerObjectPersistenceDelegate(); 110 encoder.setPersistenceDelegate(VisualContainerObject.class, delegate); 111 112 delegate = new VisualTextObjectPersistenceDelegate(); 113 encoder.setPersistenceDelegate(VisualTextObject.class, delegate); 114 115 delegate = new VisualImageObjectPersistenceDelegate(); 116 encoder.setPersistenceDelegate(VisualImageObject.class, delegate); 117 118 delegate = new VVDisplayPersistenceDelegate(); 119 encoder.setPersistenceDelegate(VVDisplay.class, delegate); 120 } 121 122 130 public void encode(final OutputStream out, final Object object) { 131 XMLEncoder encoder = new XMLEncoder(out); 132 prepareEncoder(encoder); 133 encoder.writeObject(object); 134 encoder.close(); 135 } 136 137 } 138 | Popular Tags |