1 10 package org.mmbase.module.core; 11 12 import java.util.*; 13 14 import org.mmbase.core.*; 15 import org.mmbase.core.util.StorageConnector; 16 import org.mmbase.module.corebuilders.*; 17 import org.mmbase.storage.*; 18 import org.mmbase.storage.search.*; 19 import org.mmbase.storage.search.implementation.*; 20 import org.mmbase.util.functions.FunctionProvider; 21 import org.mmbase.util.logging.Logger; 22 import org.mmbase.util.logging.Logging; 23 24 35 public abstract class MMTable extends FunctionProvider { 36 37 private static final Logger log = Logging.getLoggerInstance(MMTable.class); 38 39 42 protected MMBase mmb; 43 44 47 protected String tableName; 48 49 52 protected int maxNodesFromQuery = -1; 53 54 private Map indices = new HashMap(); 56 57 protected StorageConnector storageConnector; 59 60 63 public MMTable() { 64 } 65 66 70 public void setMMBase(MMBase m) { 71 mmb = m; 72 } 73 74 78 public MMBase getMMBase() { 79 return mmb; 80 } 81 82 86 public void setTableName(String tableName) { 87 this.tableName=tableName; 88 } 89 90 95 public String getTableName() { 96 return tableName; 97 } 98 99 104 public String getFullTableName() { 105 return mmb.baseName + "_" + tableName; 106 } 107 108 112 public int size() { 113 return storageConnector.size(); 114 } 115 116 122 public boolean created() { 123 return storageConnector.created(); 124 } 125 126 public StorageConnector getStorageConnector() { 127 return storageConnector; 128 } 129 130 163 164 174 public MMObjectNode getNode(final int number, boolean useCache) { 175 try { 176 return storageConnector.getNode(number, useCache); 177 } catch(IllegalArgumentException iae) { 178 log.warn(iae.getMessage()); 179 if (log.isDebugEnabled()) { 180 log.debug(iae); 181 } 182 return null; 183 } catch(StorageNotFoundException se) { 184 return null; 185 } catch(StorageException se) { 186 log.error(se.getMessage(), se); 187 return null; 188 } 189 } 190 191 198 public int getNodeType(int number) { 199 try { 200 return storageConnector.getNodeType(number); 201 } catch(StorageException se) { 202 log.error(Logging.stackTrace(se)); 203 return -1; 204 } 205 } 206 207 209 220 protected List getNodes(Collection virtuals) { 221 List result = new ArrayList(); 222 try { 223 result = storageConnector.getNodes(virtuals); 224 } catch (SearchQueryException sqe) { 225 log.error(sqe.getMessage() + Logging.stackTrace(sqe)); 226 } 227 return result; 228 } 229 230 239 public int count(String where) { 240 int result = -1; 243 NodeSearchQuery query = storageConnector.getSearchQuery(where); 244 try { 245 result = count(query); 246 } catch (SearchQueryException e) { 247 log.error(e); 248 } 249 return result; 250 } 251 252 264 public int count(NodeSearchQuery query) throws SearchQueryException { 265 return storageConnector.count(query); 266 } 267 268 280 public List getNodes(NodeSearchQuery query) throws SearchQueryException { 281 return storageConnector.getNodes(query); 282 } 283 284 286 293 313 314 321 public Enumeration search(String where) { 322 return searchVector(where).elements(); 323 } 324 325 333 338 339 349 354 355 362 public Vector searchVector(String where) { 363 Vector result = new Vector(); 367 NodeSearchQuery query = storageConnector.getSearchQuery(where); 368 try { 369 List nodes = getNodes(query); 370 result.addAll(nodes); 371 } catch (SearchQueryException e) { 372 log.error(e); 373 } 374 return result; 375 } 376 377 381 public List getNodes() { 382 try { 383 List nodes = storageConnector.getNodes(); 384 if (nodes != null) { 385 return nodes; 386 } 387 } catch (SearchQueryException e) { 388 log.error(e); 389 } 390 return new ArrayList(); 391 } 392 393 402 407 408 418 424 425 453 469 470 477 490 491 506 522 523 533 548 549 563 595 596 603 614 615 } 616 | Popular Tags |