public IfcModelInterface createModel(QueryInterface queryInterface) { HashMap<Integer, Long> map = new HashMap<Integer, Long>(); map.put(queryInterface.getPid(), queryInterface.getRoid()); return new ServerIfcModel(queryInterface.getPackageMetaData(), map, this); }
tmp.putInt(query.getPid()); tmp.putLong(startOid + 1); recordIterator = database.getKeyValueStore().getRecordIterator(tableName, BinUtils.intToByteArray(query.getPid()), tmp.array(), this); } else { recordIterator = database.getKeyValueStore().getRecordIterator(tableName, BinUtils.intToByteArray(query.getPid()), BinUtils.intToByteArray(query.getPid()), this); if (map == GetResult.CONTINUE_WITH_NEXT_OID) { nextKeyStart.position(0); nextKeyStart.putInt(query.getPid()); nextKeyStart.putLong(keyOid + 1); record = recordIterator.next(nextKeyStart.array());
ByteBuffer mustStartWith = createKeyBuffer(query.getPid(), oid); ByteBuffer key = createKeyBuffer(query.getPid(), oid, -query.getStopRid()); SearchingRecordIterator recordIterator = database.getKeyValueStore().getRecordIterator(eClass.getEPackage().getName() + "_" + eClass.getName(), mustStartWith.array(), key.array(), this); if (map == GetResult.CONTINUE_WITH_NEXT_OID) { nextKeyStart.position(0); nextKeyStart.putInt(query.getPid()); nextKeyStart.putLong(keyOid + 1); record = recordIterator.next(nextKeyStart.array());
newObject.setPid(Database.STORE_PROJECT_ID); } else { newObject.setPid(query.getPid());
private GetResult getMap(EClass originalQueryClass, EClass eClass, IfcModelInterface model, ByteBuffer buffer, int keyPid, long keyOid, int keyRid, QueryInterface query, TodoList todoList) throws BimserverDatabaseException { checkOpen(); if (keyPid == query.getPid()) { if (keyRid <= query.getRid() && keyRid >= query.getStopRid()) { IdEObject cachedObject = objectCache.get(keyOid);
private void processTodoList(IfcModelInterface model, TodoList todoList, QueryInterface query) throws BimserverDatabaseException { IdEObject idEObject = todoList.poll(); while (idEObject != null) { IdEObject result = get(idEObject, idEObject.getOid(), model, query, todoList); if (result == null) { throw new BimserverDatabaseException("Object not found: " + query.getPid() + " " + query.getRid() + " " + idEObject.getOid() + " " + idEObject.eClass().getName()); } if (!model.contains(result.getOid())) { try { model.addAllowMultiModel(result.getOid(), result); } catch (IfcModelInterfaceException e) { throw new BimserverDatabaseException(e); } } idEObject = todoList.poll(); } }
((IdEObjectImpl) idEObject).setPid(query.getPid()); if (rid == Integer.MAX_VALUE) { throw new BimserverDatabaseException("Database corrupt, rid cannot be " + Integer.MAX_VALUE);