@Override public SLongCheckinActionState checkinSync(String baseAddress, String token, long poid, String comment, long deserializerOid, boolean merge, long fileSize, String filename, InputStream inputStream) throws ServerException, UserException { try { return get(ServiceInterface.class).checkinSync(poid, comment, deserializerOid, fileSize, filename, new DataHandler(new InputStreamDataSource(inputStream)), merge); } catch (PublicInterfaceNotFoundException e) { LOGGER.error("", e); return null; } }
@Override public void query(ObjectNode query, boolean assumeCompletePreload) throws ServerException, UserException, PublicInterfaceNotFoundException, IfcModelInterfaceException, IOException { this.assumeCompletePreload = assumeCompletePreload; modelState = ModelState.LOADING; Long topicId = bimServerClient.getServiceInterface().download(Collections.singleton(roid), query.toString(), getJsonSerializerOid(), false); waitForDonePreparing(topicId); processDownload(topicId); bimServerClient.getServiceInterface().cleanupLongAction(topicId); modelState = ModelState.NONE; }
@Override public InputStream getDownloadData(String baseAddress, String token, long topicId) throws IOException { try { SDownloadResult downloadData = get(ServiceInterface.class).getDownloadData(topicId); return downloadData.getFile().getInputStream(); } catch (ServerException e) { LOGGER.error("", e); } catch (UserException e) { LOGGER.error("", e); } catch (PublicInterfaceNotFoundException e) { LOGGER.error("", e); } return null; }
private SProject getOrCreatePath(ServiceInterface service, SProject mainProject, SProject currentProject, String path, String schema) throws UserException, ServerException { String name = path; if (path.contains("/")) { name = path.substring(0, path.indexOf("/")); } SProject newProject = null; try { newProject = service.addProjectAsSubProject(name, currentProject.getOid(), schema); } catch (ServerException e) { e.printStackTrace(); } catch (UserException e) { newProject = service.getSubProjectByName(currentProject.getOid(), name); } if (path.contains("/")) { return getOrCreatePath(service, mainProject, newProject, path.substring(path.indexOf("/") + 1), schema); } return newProject; } }
String uuid = contextId; if (uuid != null) { project = serviceInterface.getProjectByUuid(uuid); } else { project = serviceInterface.addProject("tmp-" + new Random().nextInt(), projectSchema); SDeserializerPluginConfiguration deserializer = serviceInterface.getSuggestedDeserializerForExtension("ifc", project.getOid()); if (deserializer == null) { throw new BimBotsException("No deserializer found", BimBotDefaultErrorCode.NO_DESERIALIZER); Long topicId = serviceInterface.initiateCheckin(project.getOid(), deserializer.getOid()); ProgressTopic progressTopic = null; VirtualEndPoint virtualEndpoint = null; serviceInterface.checkinInitiatedSync(topicId, project.getOid(), "Auto checkin", deserializer.getOid(), -1L, "s", new DataHandler(new InputStreamDataSource(inputStream)), false); project = serviceInterface.getProjectByPoid(project.getOid()); file.setMime(output.getContentType()); file.setSize(output.getData().length); Long fileId = serviceInterface.uploadFile(file); extendedData.setTimeToGenerate((end - start) / 1000000); extendedData.setFileId(fileId); SExtendedDataSchema extendedDataSchema = null; try { extendedDataSchema = serviceInterface.getExtendedDataSchemaByName(output.getSchemaName()); } catch (UserException e) { extendedDataSchema = new SExtendedDataSchema(); extendedDataSchema.setContentType(output.getContentType());
file.setFilename(name); file.setMime(item.getContentType()); result.put("fileId", serviceInterface.uploadFile(file)); } else if (poid != -1) { InputStream realStream = null; if (topicId == -1) { if (sync) { SLongCheckinActionState checkinSync = service.checkinSync(poid, comment, deserializerOid, -1L, name, ifcFile, merge); result = (ObjectNode) getBimServer().getJsonHandler().getJsonConverter().toJson(checkinSync); service.cleanupLongAction(checkinSync.getTopicId()); } else { long newTopicId = service.checkinAsync(poid, comment, deserializerOid, -1L, name, ifcFile, merge); result.put("topicId", newTopicId); SLongCheckinActionState checkinSync = service.checkinInitiatedSync(topicId, poid, comment, deserializerOid, -1L, name, ifcFile, merge); result = (ObjectNode) getBimServer().getJsonHandler().getJsonConverter().toJson(checkinSync); service.cleanupLongAction(checkinSync.getTopicId()); } else { service.checkinInitiatedAsync(topicId, poid, comment, deserializerOid, -1L, name, ifcFile, merge); result.put("topicId", topicId);
if (needsRawInput()) { SSerializerPluginConfiguration serializerByContentType = bimServerClientInterface.getServiceInterface().getSerializerByContentType("application/ifc"); ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bimServerClientInterface.download(roid, serializerByContentType.getOid(), outputStream); SProject project = bimServerClientInterface.getServiceInterface().getProjectByPoid(poid); input.setIfcModel(bimServerClientInterface.getModel(project, roid, preloadCompleteModel(), false, requiresGeometry())); BimBotContext bimBotContext = new BimBotContext() { SExtendedDataSchema extendedDataSchemaByName = null; try { extendedDataSchemaByName = bimServerClientInterface.getServiceInterface().getExtendedDataSchemaByName(output.getSchemaName()); } catch (Exception e) { extendedDataSchemaByName = new SExtendedDataSchema(); extendedDataSchemaByName.setContentType(output.getContentType()); extendedDataSchemaByName.setName(output.getSchemaName()); bimServerClientInterface.getServiceInterface().addExtendedDataSchema(extendedDataSchemaByName); file.setMime(output.getContentType()); long fileId = bimServerClientInterface.getServiceInterface().uploadFile(file); extendedData.setFileId(fileId); bimServerClientInterface.getServiceInterface().addExtendedDataToRevision(roid, extendedData); } catch (BimBotsException e) { LOGGER.error("", e);
ServiceInterface service = getBimServer().getServiceFactory().get(token, AccessMethod.INTERNAL).get(ServiceInterface.class); SProject mainProject = service.getProjectByPoid(poid); String schema = service.determineIfcVersion(initialBytes, fullfilename.toLowerCase().endsWith(".ifczip")); SProject project = getOrCreatePath(service, mainProject, mainProject, path, schema); SDeserializerPluginConfiguration deserializer = service.getSuggestedDeserializerForExtension(extension, project.getOid()); service.checkinSync(project.getOid(), comment, deserializer.getOid(), -1L, filename, ifcFile, false); } catch (Exception e) { LOGGER.error(e.getMessage() + " (" + fullfilename + ")");
this.modelMetaData = new ModelMetaData(); try { this.modelMetaData.setMinBounds(getBimServerClient().getServiceInterface().getModelMinBounds(roid)); this.modelMetaData.setMaxBounds(getBimServerClient().getServiceInterface().getModelMaxBounds(roid)); } catch (ServerException e1) { e1.printStackTrace(); long topicId = bimServerClient.getServiceInterface().download(Collections.singleton(roid), converter.toJson(query).toString(), getJsonSerializerOid(), false); waitForDonePreparing(topicId); processDownload(topicId); bimServerClient.getServiceInterface().cleanupLongAction(topicId); } catch (ServerException e) { e.printStackTrace();
if (action != null) { if (action.equals("extendeddata")) { SExtendedData sExtendedData = serviceMap.getServiceInterface().getExtendedData(Long.parseLong(request.getParameter("edid"))); SFile file = serviceMap.getServiceInterface().getFile(sExtendedData.getFileId()); if (file.getMime() != null) { response.setContentType(file.getMime()); BcfFile bcfFile = BcfCache.INSTANCE.get(extendedDataId); if (bcfFile == null) { SExtendedData extendedData = serviceMap.getServiceInterface().getExtendedData(extendedDataId); long fileId = extendedData.getFileId(); SFile file = serviceMap.getServiceInterface().getFile(fileId); try { bcfFile = BcfFile.read(new ByteArrayInputStream(file.getData()), new ReadOptions(false)); return; SDownloadResult checkoutResult = serviceMap.getServiceInterface().getDownloadData(topicId); if (checkoutResult == null) { LOGGER.error("Invalid topicId: " + topicId);
public void addExtendedData(byte[] data, String filename, String title, String mime, BimServerClientInterface bimServerClientInterface, long roid) { try { SFile file = new SFile(); SExtendedData extendedData = new SExtendedData(); extendedData.setTitle(title); extendedData.setSize(data.length); file.setFilename(filename); SExtendedDataSchema extendedDataSchemaByName = bimServerClientInterface.getServiceInterface().getExtendedDataSchemaByName(name); extendedData.setSchemaId(extendedDataSchemaByName.getOid()); file.setData(data); file.setSize(data.length); file.setMime(mime); long fileId = bimServerClientInterface.getServiceInterface().uploadFile(file); extendedData.setFileId(fileId); bimServerClientInterface.getServiceInterface().addExtendedDataToRevision(roid, extendedData); } catch (Exception e) { LOGGER.error("", e); } }
Project sProject = projects.get(key.poid); try { SDeserializerPluginConfiguration desserializer = client.getServiceInterface().getSuggestedDeserializerForExtension("ifc", sProject.getOid()); client.checkinSync(sProject.getOid(), key.comment, desserializer.getOid(), false, key.file); SProject updatedProject = client.getServiceInterface().getProjectByPoid(sProject.getOid()); DatabaseSession databaseSession = database.createSession(); try {
public void run(){ try { callback.success(syncService.getSuggestedDeserializerForExtension(extension, poid)); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { callback.success(syncService.initiateCheckin(poid, deserializerOid)); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { syncService.cleanupLongAction(topicId); callback.success(); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { callback.success(syncService.addExtendedDataSchema(extendedDataSchema)); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { syncService.addExtendedDataToRevision(roid, extendedData); callback.success(); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { callback.success(syncService.addProject(projectName, schema)); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { callback.success(syncService.checkinAsync(poid, comment, deserializerOid, fileSize, fileName, data, merge)); } catch (Throwable e) { callback.error(e); } } });
public void run(){ try { callback.success(syncService.addProjectAsSubProject(projectName, parentPoid, schema)); } catch (Throwable e) { callback.error(e); } } });