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 }