KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > thoughtriver > open > vectorvisuals > persistence > VisualObjectPersistenceDelegate


1 /*
2  * VisualObjectPersistenceDelegate.java
3  *
4  * Created on Nov 1, 2005, 9:35 PM
5  */

6 package com.thoughtriver.open.vectorvisuals.persistence;
7
8 import java.awt.*;
9 import java.beans.*;
10 import java.util.List JavaDoc;
11
12 import com.thoughtriver.open.vectorvisuals.*;
13
14 /**
15  * This delegate provides persistence capability for <CODE>VisualObject</CODE>
16  * instances.
17  *
18  * @author Brandon Franklin
19  * @version $Date: 2006/11/25 09:08:28 $
20  */

21 public class VisualObjectPersistenceDelegate extends DefaultPersistenceDelegate {
22
23     /**
24      * {@inheritDoc}
25      */

26     @Override JavaDoc
27     protected Expression instantiate(final Object JavaDoc oldInstance, @SuppressWarnings JavaDoc("unused") final Encoder out) {
28         VisualObject object = (VisualObject) oldInstance;
29         Shape shape = object.getShape();
30         Brush lineBrush = object.getLineBrush();
31         Brush fillBrush = object.getFillBrush();
32         return new Expression(object, object.getClass(), "new", new Object JavaDoc[] {
33                 shape, lineBrush, fillBrush
34         });
35     }
36
37     /**
38      * {@inheritDoc}
39      */

40     @Override JavaDoc
41     protected void initialize(final Class JavaDoc<?> type, final Object JavaDoc oldInstance, final Object JavaDoc newInstance, final Encoder out) {
42         super.initialize(type, oldInstance, newInstance, out);
43         VisualObject object = (VisualObject) oldInstance;
44
45         List JavaDoc<VisualObject> embedded = object.getAllEmbedded();
46         for (VisualObject embeddedObj : embedded) {
47             out.writeStatement(new Statement(oldInstance, "add", new Object JavaDoc[] {
48                 embeddedObj
49             }));
50         }
51     }
52
53 }
54
Popular Tags