View Javadoc

1   package org.dom4j.persistence.nativ;
2   
3   import org.dom4j.io.SAXContentHandler;
4   import org.dom4j.io.SAXWriter;
5   import org.dom4j.persistence.DocumentMarshalling;
6   import org.dom4j.persistence.MarshallingContext;
7   
8   
9   /***
10   *
11   * @author Tobias Rademacher
12   * @version 1.0
13   */
14  
15  public abstract class XMLDBStrategy extends DocumentMarshalling {
16  
17    protected SAXContentHandler extractContent;
18    protected SAXWriter resolver;
19    protected MarshallingContext context;
20    
21  /*  
22   * 
23   * temporarily commented out until we get this compiling again...
24   * 
25    protected TransactionService transactionService;
26    protected Collection collection;
27  
28    public XMLDBStrategy(MarshallingContext context) throws IllegalAccessException, java.lang.InstantiationException {
29      this.context = context;
30      Database database = (Database) this.context.getDatabaseDriver().newInstance();
31      this.collection = DatabaseManager.getCollection(this.context.getDatabaseLocation().toExternalForm());
32      TransactionService transaction =
33      (TransactionService) this.collection.getService("TransactionService", "1.0");
34    }
35  
36    public void marshal(String aId, Node aNode) throws Exception {
37       this.resolve(aNode);
38       SAXResource resource = (SAXResource) this.collection.createResource(aId, "SAXResource");
39       resource.setContentHandler(this.extractContent);
40       this.collection.storeResource(resource);
41       if(this.context.isAutoCommiting())
42         transactionService.commit();
43    }
44  
45    public Node unmarshal(String systemId) {
46      XMLResource resource = (XMLResource) this.collection.getResource(systemId);
47      resource.getContentAsSAX(this.extractContent);
48      return this.extractContent.getDocument();
49    }
50  
51    protected void resolve(Node aNode) throws SAXException {
52      this.extractContent = new SAXContentHandler();
53      this.resolver = new SAXWriter(this.extractContent);
54      this.resolver.write((Document)aNode);
55    }
56  
57     public void setContext(MarshallingContext aContext) {
58      this.context = aContext;
59     }
60  */
61  
62  }