@Override public ModelMetaData getModelMetaData() { if (modelMetaData == null) { this.modelMetaData = new ModelMetaData(); } return modelMetaData; }
protected void checkCheckSum(Project project, IfcModelInterface model) throws UserException { ConcreteRevision lastConcreteRevision = project.getLastConcreteRevision(); if (lastConcreteRevision != null) { int revisionId = -1; for (Revision revision : lastConcreteRevision.getRevisions()) { if (revision.getProject() == project) { revisionId = revision.getId(); } } byte[] revisionChecksum = lastConcreteRevision.getChecksum(); if (revisionChecksum != null && model.getModelMetaData().getChecksum() != null) { if (Arrays.equals(revisionChecksum, model.getModelMetaData().getChecksum())) { throw new UserException("Uploaded model is the same as last revision (" + revisionId + "), duplicate model not stored"); } } } }
throw new UserException(e); subModel.getModelMetaData().setDate(subRevision.getDate()); ifcModelSet.add(subModel); ifcModel.getModelMetaData().setName(project.getName() + "." + revision.getId()); ifcModel.getModelMetaData().setRevisionId(project.getRevisions().indexOf(revision) + 1); ifcModel.getModelMetaData().setAuthorizedUser(user.getName()); ifcModel.getModelMetaData().setDate(new Date()); return (IfcModel) ifcModel;
@Override public ModelMetaData getModelMetaData() { if (this.modelMetaData == null) { this.modelMetaData = new ModelMetaData(); try { this.modelMetaData.setMinBounds(getBimServerClient().getServiceInterface().getModelMinBounds(roid)); this.modelMetaData.setMaxBounds(getBimServerClient().getServiceInterface().getModelMaxBounds(roid)); } catch (ServerException e1) { e1.printStackTrace();
getDatabaseSession().getMap(subModel, query); projectName += concreteRevision.getProject().getName() + "-"; subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModel.getModelMetaData().setIfcHeader(ifcHeader); ifcModel.getModelMetaData().setName(projectName); return ifcModel;
IfcHeader ifcHeader = getModel().getModelMetaData().getIfcHeader(); if (ifcHeader != null) { getDatabaseSession().store(ifcHeader); concreteRevision.setChecksum(getModel().getModelMetaData().getChecksum());
} else if (nextName.equals("header")) { IfcHeader ifcHeader = (IfcHeader) processObject(model, waitingList, jsonReader, StorePackage.eINSTANCE.getIfcHeader()); model.getModelMetaData().setIfcHeader(ifcHeader);
OldQuery query = new OldQuery(packageMetaData, concreteRevision.getProject().getId(), concreteRevision.getId(), virtualRevision.getOid(), null, Deep.YES, highestStopId); getDatabaseSession().getMap(subModel, query); subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModelSet.add(subModel);
protected SCheckoutResult convertModelToCheckoutResult(Project project, String username, IfcModelInterface model, RenderEnginePlugin renderEnginePlugin, DownloadParameters downloadParameters) throws UserException, NoSerializerFoundException { SCheckoutResult checkoutResult = new SCheckoutResult(); checkoutResult.setSerializerOid(downloadParameters.getSerializerOid()); if (model.isValid()) { checkoutResult.setProjectName(project.getName()); checkoutResult.setRevisionNr(model.getModelMetaData().getRevisionId()); try { Serializer serializer = getBimServer().getSerializerFactory().create(project, username, model, renderEnginePlugin, downloadParameters); if (serializer == null) { throw new UserException("Error, no serializer found " + downloadParameters.getSerializerOid()); } if (getBimServer().getServerSettingsCache().getServerSettings().getCacheOutputFiles() && serializer.allowCaching()) { if (getBimServer().getDiskCacheManager().contains(downloadParameters)) { checkoutResult.setFile(new CachingDataHandler(getBimServer().getDiskCacheManager(), downloadParameters)); } else { checkoutResult.setFile(new DataHandler(new CacheStoringEmfSerializerDataSource(serializer, model.getModelMetaData().getName(), getBimServer().getDiskCacheManager().startCaching(downloadParameters)))); } } else { checkoutResult.setFile(new DataHandler(new EmfSerializerDataSource(serializer, model.getModelMetaData().getName()))); } } catch (SerializerException e) { LOGGER.error("", e); } } return checkoutResult; }
if (mode == Mode.HEADER) { this.emfJsonSerializer.print("{"); IfcHeader ifcHeader = model.getModelMetaData().getIfcHeader(); if (ifcHeader != null) { this.emfJsonSerializer.print("\"header\":");
subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModelSet.add(subModel); ifcModel.getModelMetaData().setIfcHeader(ifcHeader); ifcModel.getModelMetaData().setName(project.getName() + "." + revision.getId()); ifcModel.getModelMetaData().setRevisionId(project.getRevisions().indexOf(revision) + 1); if (user != null) { ifcModel.getModelMetaData().setAuthorizedUser(user.getName()); ifcModel.getModelMetaData().setDate(revision.getDate());
Revision revision = session.get(project.getLastRevisionId(), OldQuery.getDefault()); session.getMap(model, new OldQuery(packageMetaData, project.getId(), revision.getId(), revision.getOid(), null, Deep.NO)); model.getModelMetaData().setIfcHeader(revision.getLastConcreteRevision().getIfcHeader()); } catch (BimserverDatabaseException e) { e.printStackTrace();
lastPackageMetaData = packageMetaData; IfcModelInterface subModel = getDatabaseSession().getAllOfType(packageMetaData.getEPackage().getName(), className, query); subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModelSet.add(subModel);
ifcModel.getModelMetaData().setName(name); ifcModel.getModelMetaData().setRevisionId(1); if (getAuthorization().getUoid() != -1) { ifcModel.getModelMetaData().setAuthorizedUser(getUserByUoid(getAuthorization().getUoid()).getName()); ifcModel.getModelMetaData().setDate(new Date()); } catch (Throwable e) { throw new BimserverDatabaseException(e); ifcModel.getModelMetaData().setName(name); ifcModel.getModelMetaData().setAuthorizedUser(getUserByUoid(getAuthorization().getUoid()).getName()); ifcModel.getModelMetaData().setDate(new Date());
OldQuery query = new OldQuery(packageMetaData, concreteRevision.getProject().getId(), concreteRevision.getId(), virtualRevision.getOid(), null, Deep.NO, highestStopId); eObject = getDatabaseSession().get(null, oid, subModel, query); subModel.getModelMetaData().setDate(concreteRevision.getDate()); ifcModelSet.add(subModel); if (eObject != null) {
@Override public ConcreteRevision execute() throws UserException, BimserverLockConflictException, BimserverDatabaseException { Revision oldRevision = getDatabaseSession().get(StorePackage.eINSTANCE.getRevision(), roid, OldQuery.getDefault()); Project oldProject = oldRevision.getProject(); User user = getDatabaseSession().get(StorePackage.eINSTANCE.getUser(), authorization.getUoid(), OldQuery.getDefault()); if (!authorization.hasRightsOnProjectOrSuperProjectsOrSubProjects(user, oldProject)) { throw new UserException("User has insufficient rights to download revisions from this project"); } IfcModelSet ifcModelSet = new IfcModelSet(); PackageMetaData lastMetaData = null; for (ConcreteRevision subRevision : oldRevision.getConcreteRevisions()) { PackageMetaData packageMetaData = bimServer.getMetaDataManager().getPackageMetaData(subRevision.getProject().getSchema()); IfcModel subModel = new BasicIfcModel(packageMetaData, null); getDatabaseSession().getMap(subModel, new OldQuery(packageMetaData, subRevision.getProject().getId(), subRevision.getId(), -1, Deep.YES)); subModel.getModelMetaData().setDate(subRevision.getDate()); ifcModelSet.add(subModel); lastMetaData = packageMetaData; } IfcModelInterface model = new BasicIfcModel(lastMetaData, null); try { model = bimServer.getMergerFactory().createMerger(getDatabaseSession(), authorization.getUoid()) .merge(oldRevision.getProject(), ifcModelSet, new ModelHelper(bimServer.getMetaDataManager(), model)); } catch (MergeException e) { throw new UserException(e); } model.resetOids(); CheckinDatabaseAction checkinDatabaseAction = new CheckinDatabaseAction(bimServer, getDatabaseSession(), getAccessMethod(), destPoid, authorization, model, comment, comment, false, -1, -1); // TODO return checkinDatabaseAction.execute(); } }
subModel.getModelMetaData().setDate(subRevision.getDate()); ifcModelSet.add(subModel);