1 10 package org.mmbase.storage.implementation.database; 11 12 import org.mmbase.module.core.*; 13 import org.mmbase.storage.StorageException; 14 15 23 public class RelationalDatabaseStorageManager extends DatabaseStorageManager { 24 25 28 public RelationalDatabaseStorageManager() { 29 } 30 31 public double getVersion() { 33 return 1.0; 34 } 35 36 protected boolean tablesInheritFields() { 37 return false; 38 } 39 40 46 public void create(final MMObjectNode node, final MMObjectBuilder builder) throws StorageException { 47 boolean localTransaction = !inTransaction; 48 if (localTransaction) { 49 beginTransaction(); 50 } 51 try { 52 java.util.Iterator i = builder.getAncestors().iterator(); 54 while(i.hasNext()) { 55 MMObjectBuilder b = (MMObjectBuilder) i.next(); 56 super.create(node, b); 57 } 58 super.create(node, builder); 59 if (localTransaction) commit(); 60 } catch (StorageException se) { 61 if (localTransaction && inTransaction) rollback(); 62 throw se; 63 } 64 } 65 66 72 public void change(MMObjectNode node, MMObjectBuilder builder) throws StorageException { 73 boolean localTransaction = !inTransaction; 74 if (localTransaction) { 75 beginTransaction(); 76 } 77 try { 78 do { 79 super.change(node, builder); 80 builder = builder.getParentBuilder(); 81 } while (builder!=null); 82 if (localTransaction) commit(); 83 } catch (StorageException se) { 84 if (localTransaction && inTransaction) rollback(); 85 throw se; 86 } 87 } 88 89 95 public void delete(MMObjectNode node, MMObjectBuilder builder) throws StorageException { 96 boolean localTransaction = !inTransaction; 97 if (localTransaction) { 98 beginTransaction(); 99 } 100 101 try { 102 do { 103 super.delete(node, builder); 104 builder = builder.getParentBuilder(); 105 } while (builder!=null); 106 if (localTransaction) commit(); 107 } catch (StorageException se) { 108 if (localTransaction && inTransaction) rollback(); 109 throw se; 110 } 111 } 112 113 } 114 115 | Popular Tags |