/** * Returns the datastore container (table) for the specified field. * Returns 'null' if the field is not (yet) known to the store manager. * Note : if we have an embedded object (embedded into something else) that has a member which requires a join table, then this method will not cater * for having different tables for the different places that the object can be embedded. * @param mmd The metadata for the field. * @return The corresponding datastore container, or 'null'. */ public Table getTable(AbstractMemberMetaData mmd) { schemaLock.readLock().lock(); try { StoreData sd = storeDataMgr.get(mmd); if (sd != null && sd instanceof RDBMSStoreData) { return (Table) sd.getTable(); } return null; } finally { schemaLock.readLock().unlock(); } }
sd.setTable(table); registerStoreData(sd);
for (StoreData sd : storeDataMgr.getManagedStoreData()) if (sd.isFCO() && ((AbstractClassMetaData)sd.getMetaData()).getSuperAbstractClassMetaData() != null && ((AbstractClassMetaData)sd.getMetaData()).getSuperAbstractClassMetaData().getFullClassName().equals(cmd.getFullClassName())) AbstractClassMetaData[] superCmds = getClassesManagingTableForClass((AbstractClassMetaData)sd.getMetaData(), clr); if (superCmds != null)
/** * Method to register some data with the store. * This will also register the data with the starter process. * @param data The StoreData to add */ protected void registerStoreData(StoreData data) { // Register the data super.registerStoreData(data); // Make this class config known to all active ODB for this store if (!activeODBs.isEmpty()) { Iterator containerIter = activeODBs.iterator(); while (containerIter.hasNext()) { ODB odb = (ODB)containerIter.next(); supportClassInNeoDatis(odb, (AbstractClassMetaData)data.getMetaData()); } } }
/** * Method to add a class to the supported list. * @param data Data for the class to add. **/ public void addClass(StoreData data) { RDBMSStoreData tableData = (RDBMSStoreData)data; // We only support MappedStoreData assertIsOpen(); try { schemaTable.addClass(tableData, mconn); } catch (SQLException sqe2) { String msg = Localiser.msg("049003", data.getName(), sqe2); NucleusLogger.DATASTORE_SCHEMA.error(msg); throw new NucleusDataStoreException(msg, sqe2); } }
/** * Method to register some data with the store. * This will also register the data with the starter process. * @param data The StoreData to add */ protected void registerStoreData(StoreData data) { // Register the data super.registerStoreData(data); // Make this class config known to all active ObjectContainers for this store if (activeObjectContainers.size() > 0) { Iterator containerIter = activeObjectContainers.iterator(); while (containerIter.hasNext()) { ObjectContainer cont = (ObjectContainer)containerIter.next(); supportClassInDB4O(cont.ext().configure(), (AbstractClassMetaData)data.getMetaData()); } } }
tableMapping.setString(null, ps, MappingHelper.getMappingIndices(jdbc_id, tableMapping), data.getName());
sd.setTable(table); registerStoreData(sd);
/** * Method to register an ObjectContainer as active on this store. * Will load up all known class mapping information into the datastore container. * @param cont ObjectContainer */ public void registerObjectContainer(ObjectContainer cont) { if (cont == null) { return; } // Register all known classes with the ObjectContainer of this transaction Configuration conf = cont.ext().configure(); Collection storeDataValues = storeDataMgr.getManagedStoreData(); Iterator iter = storeDataValues.iterator(); while (iter.hasNext()) { StoreData data = (StoreData)iter.next(); supportClassInDB4O(conf, (AbstractClassMetaData)data.getMetaData()); } activeObjectContainers.add(cont); }
Table table = storeMgr.getStoreDataForClass(cmd.getFullClassName()).getTable(); VersionMetaData vermd = cmd.getVersionMetaDataForClass();
sd.setTable(table); registerStoreData(sd);
sd.setTable(table); registerStoreData(sd);
ClassLoaderResolver clr = ec.getClassLoaderResolver(); final AbstractClassMetaData cmd = ec.getMetaDataManager().getMetaDataForClass(candidateClass, clr); Table table = storeMgr.getStoreDataForClass(cmd.getFullClassName()).getTable();
sd.setTable(table); registerStoreData(sd);
sd = storeMgr.getStoreDataForClass(cmd.getFullClassName()); Table table = sd.getTable(); String sheetName = table.getName(); OdfTable worksheet = spreadsheetDoc.getTableByName(sheetName);
sd.setTable(table); registerStoreData(sd);
public static List<Long> performMongoCount(DB db, BasicDBObject filterObject, Class candidateClass, boolean subclasses, ExecutionContext ec) throws MongoException { StoreManager storeMgr = ec.getStoreManager(); long count = 0; for (AbstractClassMetaData cmd : MetaDataUtils.getMetaDataForCandidates(candidateClass, subclasses, ec)) { Table table = storeMgr.getStoreDataForClass(cmd.getFullClassName()).getTable(); String collectionName = table.getName(); count += db.getCollection(collectionName).count(filterObject); } List<Long> results = new LinkedList<>(); results.add(count); if (ec.getStatistics() != null) { // Add to statistics ec.getStatistics().incrementNumReads(); } return results; }