public Command createCommandFromFile(String model, String worksheetId, File uploadedFile, Workspace workspace, boolean override) { return new ApplyHistoryFromR2RMLModelCommand(getNewId(workspace), model, uploadedFile, worksheetId, override); }
@Override public UpdateContainer doIt(Workspace workspace) throws CommandException { ApplyHistoryFromR2RMLModelCommandFactory factory = new ApplyHistoryFromR2RMLModelCommandFactory(); try { String context = (modelContext != null && !modelContext.isEmpty()? (modelContext + "/") : ""); URL url = new URL(baseUrl + context + modelURL + "?modelRepository=" + modelRepository); File file = new File("tmp.ttl"); FileUtils.copyURLToFile(url, file); Command cmd = factory.createCommandFromFile(model, worksheetId, file, workspace, override); UpdateContainer uc = cmd.doIt(workspace); workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelUrl, modelURL); workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelContext, modelContext); workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelRepository, modelRepository); file.delete(); return uc; }catch(Exception e) { String msg = "Error occured while applying history!"; logger.error(msg, e); return new UpdateContainer(new ErrorUpdate(msg)); } }
@Override public Command createCommand(HttpServletRequest request, Workspace workspace) { String worksheetId = request.getParameter(Arguments.worksheetId.name()); ServletContextParameterMap contextParameters = ContextParametersRegistry.getInstance().getContextParameters(workspace.getContextId()); boolean override = Boolean.parseBoolean(request.getParameter(Arguments.override.name())); String url = request.getParameter(Arguments.url.name()); if(url == null) { File uploadedFile = FileUtil.downloadFileFromHTTPRequest(request, contextParameters.getParameterValue(ContextParameter.USER_UPLOADED_DIR)); return new ApplyHistoryFromR2RMLModelCommand(getNewId(workspace), Command.NEW_MODEL, uploadedFile, worksheetId, override); } else { return new ApplyHistoryFromR2RMLModelCommand(getNewId(workspace), Command.NEW_MODEL, url, worksheetId, override); } }