1 26 27 package org.objectweb.openccm.pss.runtime.common.lib; 28 29 30 38 39 public abstract class CatalogBase 40 extends org.omg.CORBA.LocalObject  41 implements org.objectweb.openccm.pss.runtime.common.api.CatalogBase 42 { 43 49 52 private int _id; 53 54 57 private org.objectweb.openccm.pss.runtime.common.api.Connector _connector; 58 59 62 private short _access_mode; 63 64 67 protected java.util.Map _storage_home_incarnations; 68 69 75 80 public CatalogBase(int id) 81 { 82 _id = id; 83 _storage_home_incarnations = new java.util.HashMap (); 84 _connector = null; 85 } 86 87 93 99 105 110 public short 111 access_mode() 112 { 113 return _access_mode; 114 } 115 116 119 public org.omg.CosPersistentState.StorageHomeBase 120 find_storage_home(String storage_home_id) 121 throws org.omg.CosPersistentState.NotFound 122 { 123 org.objectweb.openccm.pss.runtime.common.api.StorageHomeBase sh = null; 124 125 sh = (org.objectweb.openccm.pss.runtime.common.api.StorageHomeBase) _storage_home_incarnations.get(storage_home_id); 126 127 if (sh == null) 128 { 129 java.lang.Class clazz = null; 130 131 clazz = _connector.get_storage_home_factory(storage_home_id); 132 if (clazz == null) 133 { 134 throw new org.omg.CosPersistentState.NotFound(); 135 } 136 137 try 138 { 139 sh = (org.objectweb.openccm.pss.runtime.common.api.StorageHomeBase) clazz.newInstance(); 140 sh.initialize(this); 141 register_storage_home_incarnation(storage_home_id, sh); 142 }catch(Exception ex){ 143 ex.printStackTrace(); 144 throw new org.omg.CORBA.PERSIST_STORE ("Problem in find_storage_home"); 145 } 146 } 147 148 return sh; 149 } 150 151 154 public abstract java.lang.Object  155 find_by_pid(byte[] the_pid) 156 throws org.omg.CosPersistentState.NotFound; 157 158 161 public abstract void 162 flush(); 163 164 167 public abstract void 168 refresh(); 169 170 173 public abstract void 174 free_all(); 175 176 179 public abstract void 180 close(); 181 182 188 193 public void 194 set_connector(org.objectweb.openccm.pss.runtime.common.api.Connector connector) 195 { 196 _connector = connector; 197 } 198 199 204 public org.objectweb.openccm.pss.runtime.common.api.Connector 205 get_connector() 206 { 207 return _connector; 208 } 209 210 215 public int 216 get_id() 217 { 218 return _id; 219 } 220 221 227 public void 228 register_storage_home_incarnation(String storage_home_id, 229 org.omg.CosPersistentState.StorageHomeBase storage_home) 230 { 231 _storage_home_incarnations.put(storage_home_id, storage_home); 232 } 233 234 241 public org.objectweb.openccm.pss.runtime.common.api.StorageObject 242 create_storage_object(String storage_type_id) 243 throws org.omg.CosPersistentState.NotFound 244 { 245 java.lang.Class clazz = null; 246 247 clazz = get_connector().get_storage_object_factory(storage_type_id); 248 if (clazz == null) 249 { 250 throw new org.omg.CosPersistentState.NotFound(); 251 } 252 253 try 254 { 255 return (org.objectweb.openccm.pss.runtime.common.api.StorageObject) clazz.newInstance(); 256 }catch(Exception ex){ 257 ex.printStackTrace(); 258 throw new org.omg.CORBA.PERSIST_STORE ("Problem in create_storage_object"); 259 } 260 } 261 } 262 | Popular Tags |