1 package org.dom4j.persistence;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6
7 import org.dom4j.Document;
8
9 /***
10 *
11 * @author
12 * @version 1.0
13 */
14
15 public class PersitenceManager implements Initiator {
16
17 private static PersitenceManager orginator;
18 private List mementos;
19
20 protected PersitenceManager() {
21 mementos = new ArrayList();
22 }
23
24 public static PersitenceManager getInstance() {
25 if (PersitenceManager.orginator == null)
26 PersitenceManager.orginator = new PersitenceManager();
27
28 return PersitenceManager.orginator;
29 }
30
31 public Memento createMemento(Document doc, String systemId, MarshallingContext context) throws Exception {
32 DocumentMemento menento = new DocumentMemento(systemId, context);
33 menento.setState(doc);
34 this.mementos.add(menento);
35 return menento;
36 }
37
38 public List getMemeneto() {
39 return mementos;
40 }
41
42 public Iterator getMemenetoIterator() {
43 return mementos.iterator();
44 }
45
46
47 public Memento getMemento(String systemId) throws Exception
48 {
49 boolean searching = true;
50 Memento targetedMemento = null;
51 Iterator mememtoIter = this.getMemenetoIterator();
52 while(searching)
53 {
54 targetedMemento = (Memento) mememtoIter.next();
55 if (((Document)targetedMemento.getState()).getDocType().getSystemID().equals(systemId)) {
56 searching = false;
57 }
58 }
59
60 return targetedMemento;
61 }
62
63
64
65 }