private void processRenameBNodesURISelectRequest(VitroRequest vreq, ModelMaker maker) {
   String namespaceEtcStr = vreq.getParameter("namespaceEtcStr");
   String pattern = vreq.getParameter("pattern");
   String concatenate = vreq.getParameter("concatenate");
   String[] sourceModel = vreq.getParameterValues("sourceModelName");
   if (namespaceEtcStr != null) {
     if (namespaceEtcStr.isEmpty()) {
       if ("true".equals(vreq.getParameter("csv2rdf"))) {
         processCsv2rdfRequest(vreq);
         return;
       } else {
         vreq.setAttribute("errorMsg", "Please enter a value.");
         processRenameBNodesRequest(vreq, maker);
         return;
       }
     }
     if (concatenate.equals("integer")) {
       doRenameBNodes(vreq, namespaceEtcStr, false, null, sourceModel);
     } else {
       pattern = pattern.trim();
       doRenameBNodes(vreq, namespaceEtcStr, true, pattern, sourceModel);
     }
     vreq.setAttribute("title", "Ingest Menu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "URI Select");
     vreq.setAttribute("bodyJsp", RENAME_BNODES_URI_SELECT_JSP);
   }
 }
 private void processCleanLiteralsRequest(VitroRequest vreq) {
   String modelNameStr = vreq.getParameter("modelName");
   Model model = getModel(modelNameStr, vreq);
   doCleanLiterals(model);
   vreq.setAttribute("title", "Ingest Menu");
   vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
 }
  private void processCreateModelRequest(
      VitroRequest vreq, ModelMaker maker, WhichService modelType) {
    String modelName = vreq.getParameter("modelName");

    if (modelName != null) {
      try {
        URI graphURI = new URI(modelName);

        if (graphURI.getScheme() == null) {
          String origName = modelName;
          modelName = CREATED_GRAPH_BASE_URI + modelName;
          log.info("The model name has been changed from " + origName + " to " + modelName);
        }

        doCreateModel(modelName, maker);
        showModelList(vreq, maker, modelType);
      } catch (URISyntaxException e) {
        throw new RuntimeException("the model name must be a valid URI");
      }
    } else {
      vreq.setAttribute("modelType", modelType.toString());
      vreq.setAttribute("title", "Create New Model");
      vreq.setAttribute("bodyJsp", CREATE_MODEL_JSP);
    }
  }
  private void processMergeResourceRequest(VitroRequest vreq) {
    String uri1 = vreq.getParameter("uri1"); // get primary uri
    String uri2 = vreq.getParameter("uri2"); // get secondary uri
    String usePrimaryLabelOnlyStr = vreq.getParameter("usePrimaryLabelOnly");
    ;
    boolean usePrimaryLabelOnly =
        usePrimaryLabelOnlyStr != null && !usePrimaryLabelOnlyStr.isEmpty();

    if (uri1 != null) {
      JenaIngestUtils utils = new JenaIngestUtils();
      /*
       * get baseOnt and infOnt models
       */
      OntModel baseOntModel = ModelAccess.on(getServletContext()).getOntModel(FULL_ASSERTIONS);
      OntModel tboxOntModel = ModelAccess.on(getServletContext()).getOntModel(TBOX_UNION);

      /*
       * calling method that does the merge operation.
       */
      MergeResult result =
          utils.doMerge(uri1, uri2, baseOntModel, tboxOntModel, usePrimaryLabelOnly);

      vreq.getSession().setAttribute("leftoverModel", result.getLeftoverModel());
      vreq.setAttribute("result", result);
      vreq.setAttribute("title", "Merge Resources");
      vreq.setAttribute("bodyJsp", MERGE_RESULT);
    } else {
      vreq.setAttribute("title", "Merge Resources");
      vreq.setAttribute("bodyJsp", MERGE_RESOURCES);
    }
  }
 private void processProcessStringsRequest(VitroRequest vreq) {
   String className = vreq.getParameter("className");
   if (className != null) {
     doProcessStrings(vreq);
     vreq.setAttribute("title", "IngestMenu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Process Strings");
     vreq.setAttribute("bodyJsp", PROCESS_STRINGS_JSP);
   }
 }
 private void processSubtractModelRequest(VitroRequest vreq) {
   String modela = vreq.getParameter("modela");
   if (modela != null) {
     doSubtractModels(vreq);
     vreq.setAttribute("title", "IngestMenu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Subtract Models");
     vreq.setAttribute("bodyJsp", SUBTRACT_MODELS_JSP);
   }
 }
 private void processSmushSingleModelRequest(VitroRequest vreq) {
   String propertyURIStr = vreq.getParameter("propertyURI");
   if (propertyURIStr != null) {
     doSmushSingleModel(vreq);
     vreq.setAttribute("title", "Ingest Menu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Smush Resources");
     vreq.setAttribute("bodyJsp", SMUSH_JSP);
   }
 }
 private void processGenerateTBoxRequest(VitroRequest vreq) {
   String testParam = vreq.getParameter("sourceModelName");
   if (testParam != null) {
     doGenerateTBox(vreq);
     vreq.setAttribute("title", "Ingest Menu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Generate TBox from Assertions Data");
     vreq.setAttribute("bodyJsp", GENERATE_TBOX_JSP);
   }
 }
 private void processSplitPropertyValuesRequest(VitroRequest vreq) {
   String splitRegex = vreq.getParameter("splitRegex");
   if (splitRegex != null) {
     doSplitPropertyValues(vreq);
     vreq.setAttribute("title", "IngestMenu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Split PropertyValues");
     vreq.setAttribute("bodyJsp", SPLIT_PROPERTY_VALUES_JSP);
   }
 }
 private void processCsv2rdfRequest(VitroRequest vreq) {
   String csvUrl = vreq.getParameter("csvUrl");
   if (csvUrl != null) {
     /*doExecuteCsv2Rdf(vreq);*/
     vreq.setAttribute("title", "IngestMenu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Convert CSV to RDF");
     vreq.setAttribute("bodyJsp", CSV2RDF_JSP);
   }
 }
 private void processLoadRDFDataRequest(VitroRequest vreq, ModelMaker maker) {
   String docLoc = vreq.getParameter("docLoc");
   String filePath = vreq.getParameter("filePath");
   String modelName = vreq.getParameter("modelName");
   String languageParam = null;
   String language =
       ((languageParam = vreq.getParameter("language")) != null) ? languageParam : "RDF/XML";
   if (docLoc != null && modelName != null) {
     doLoadRDFData(modelName, docLoc, filePath, language, maker);
     vreq.setAttribute("title", "Ingest Menu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else {
     vreq.setAttribute("title", "Load RDF Data");
     vreq.setAttribute("bodyJsp", LOAD_RDF_DATA_JSP);
   }
 }
 private void processRenameResourceRequest(VitroRequest vreq) {
   String oldNamespace = vreq.getParameter("oldNamespace");
   String newNamespace = vreq.getParameter("newNamespace");
   String errorMsg = "";
   if (oldNamespace != null) {
     if (oldNamespace.isEmpty() && !newNamespace.isEmpty()) {
       errorMsg = "Please enter the old namespace to be changed.";
     } else if (!oldNamespace.isEmpty() && newNamespace.isEmpty()) {
       errorMsg = "Please enter the new namespace.";
     } else if (oldNamespace.isEmpty() && newNamespace.isEmpty()) {
       errorMsg = "Please enter the namespaces.";
     } else if (oldNamespace.equals(newNamespace)) {
       errorMsg = "Please enter two different namespaces.";
     }
     if (!errorMsg.isEmpty()) {
       vreq.setAttribute("errorMsg", errorMsg);
       vreq.setAttribute("oldNamespace", oldNamespace);
       vreq.setAttribute("newNamespace", newNamespace);
       vreq.setAttribute("title", "Rename Resource");
       vreq.setAttribute("bodyJsp", RENAME_RESOURCE);
     } else {
       String result = doRename(oldNamespace, newNamespace);
       vreq.setAttribute("result", result);
       vreq.setAttribute("title", "Rename Resources");
       vreq.setAttribute("bodyJsp", RENAME_RESULT);
     }
   } else {
     vreq.setAttribute("title", "Rename Resource");
     vreq.setAttribute("bodyJsp", RENAME_RESOURCE);
   }
 }
 private void processExecuteWorkflowRequest(VitroRequest vreq) {
   String workflowURIStr = vreq.getParameter("workflowURI");
   String workflowStepURIStr = vreq.getParameter("workflowStepURI");
   if (workflowURIStr != null && workflowStepURIStr != null) {
     doExecuteWorkflow(vreq);
     vreq.setAttribute("title", "IngestMenu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   } else if (workflowURIStr != null) {
     // Select the workflow step at which to start
     OntModel jenaOntModel = (OntModel) getModel("vitro:jenaOntModel", vreq);
     vreq.setAttribute(
         "workflowSteps",
         new JenaIngestWorkflowProcessor(
                 jenaOntModel.getIndividual(workflowURIStr), getModelMaker(vreq))
             .getWorkflowSteps(null));
     vreq.setAttribute("title", "Choose Workflow Step");
     vreq.setAttribute("bodyJsp", WORKFLOW_STEP_JSP);
   } else {
     OntModel jenaOntModel = ModelAccess.on(getServletContext()).getOntModel();
     jenaOntModel.enterCriticalSection(Lock.READ);
     List<Individual> savedQueryList = new LinkedList<Individual>();
     try {
       Resource workflowClassRes = WorkflowOntology.Workflow;
       savedQueryList.addAll(jenaOntModel.listIndividuals(workflowClassRes).toList());
     } finally {
       jenaOntModel.leaveCriticalSection();
     }
     vreq.setAttribute("workflows", savedQueryList);
     vreq.setAttribute("title", "Execute Workflow");
     vreq.setAttribute("bodyJsp", EXECUTE_WORKFLOW_JSP);
   }
 }
  private ResponseValues doValidationErrors(
      VitroRequest vreq,
      EditConfigurationVTwo editConfiguration,
      MultiValueEditSubmission submission) {

    Map<String, String> errors = submission.getValidationErrors();

    if (errors != null && !errors.isEmpty()) {
      String form = editConfiguration.getFormUrl();
      vreq.setAttribute("formUrl", form);
      vreq.setAttribute("view", vreq.getParameter("view"));
      // Need to ensure that edit key is set so that the correct
      // edit configuration and edit submission are retrieved
      // This can also be set as a parameter instead
      String formUrl = editConfiguration.getFormUrl();
      formUrl += "&editKey=" + editConfiguration.getEditKey();
      return new RedirectResponseValues(formUrl);
    }
    return null; // no errors
  }
 protected void showModelList(VitroRequest vreq, ModelMaker maker, WhichService modelType) {
   vreq.setAttribute("modelType", modelType.toString());
   if (modelType == CONTENT) {
     vreq.setAttribute("infoLine", "Main Store models");
   } else {
     vreq.setAttribute("infoLine", "Configuration models");
   }
   vreq.setAttribute("modelNames", maker.listModels().toList());
   vreq.setAttribute("bodyAttr", "onLoad=\"init()\"");
   vreq.setAttribute("title", "Available Models");
   vreq.setAttribute("bodyJsp", LIST_MODELS_JSP);
 }
 private void processRenameBNodesRequest(VitroRequest vreq, ModelMaker maker) {
   String[] sourceModel = vreq.getParameterValues("sourceModelName");
   JenaIngestUtils utils = new JenaIngestUtils();
   if (sourceModel != null && sourceModel.length != 0) {
     List<Model> sourceModelList = new ArrayList<Model>();
     for (int i = 0; i < sourceModel.length; i++) {
       Model m = maker.getModel(sourceModel[i]);
       if (m != null) {
         sourceModelList.add(m);
       }
     }
     Map<String, LinkedList<String>> propertyMap =
         utils.generatePropertyMap(sourceModelList, maker);
     List<String> sourceModelNameList = Arrays.asList(sourceModel);
     vreq.setAttribute("sourceModel", sourceModelNameList);
     vreq.setAttribute("propertyMap", propertyMap);
     vreq.setAttribute("enablePropertyPatternURIs", !propertyMap.isEmpty());
     vreq.setAttribute("title", "URI Select");
     vreq.setAttribute("bodyJsp", RENAME_BNODES_URI_SELECT_JSP);
   } else {
     vreq.setAttribute("title", "Rename Blank Nodes");
     vreq.setAttribute("bodyJsp", RENAME_BNODES_JSP);
   }
 }
 private void processPermanentURIRequest(VitroRequest vreq, ModelMaker maker) {
   String modelName = vreq.getParameter("modelName");
   String oldModel = vreq.getParameter("oldModel");
   String newModel = vreq.getParameter("newModel");
   String oldNamespace = vreq.getParameter("oldNamespace");
   String newNamespace = vreq.getParameter("newNamespace");
   String dNamespace = vreq.getParameter("defaultNamespace");
   newNamespace = (newNamespace == null || newNamespace.isEmpty()) ? oldNamespace : newNamespace;
   newNamespace = (dNamespace != null) ? dNamespace : newNamespace;
   if (modelName != null) {
     Model m = maker.getModel(modelName);
     List<String> namespaceList = new ArrayList<>();
     ResIterator resItr = m.listResourcesWithProperty((Property) null);
     if (resItr != null) {
       while (resItr.hasNext()) {
         String namespace = resItr.nextResource().getNameSpace();
         if (!namespaceList.contains(namespace)) {
           namespaceList.add(namespace);
         }
       }
     } else {
       namespaceList.add("no resources present");
     }
     String defaultNamespace = vreq.getUnfilteredWebappDaoFactory().getDefaultNamespace();
     vreq.setAttribute("modelName", modelName);
     vreq.setAttribute("defaultNamespace", defaultNamespace);
     vreq.setAttribute("namespaceList", namespaceList);
     vreq.setAttribute("title", "Permanent URI");
     vreq.setAttribute("bodyJsp", PERMANENT_URI);
   } else if (oldModel != null) {
     JenaIngestUtils utils = new JenaIngestUtils();
     utils.doPermanentURI(oldModel, newModel, oldNamespace, newNamespace, maker, vreq);
     vreq.setAttribute("title", "Ingest Menu");
     vreq.setAttribute("bodyJsp", INGEST_MENU_JSP);
   }
 }
  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse response) {
    if (!isAuthorizedToDisplayPage(req, response, new Actions(new EditOntology()))) {
      return;
    }

    VitroRequest request = new VitroRequest(req);

    EditProcessObject epo = super.createEpo(request);
    request.setAttribute("epoKey", epo.getKey());

    OntologyDao oDao = request.getFullWebappDaoFactory().getOntologyDao();
    Ontology o = null;
    if (request.getParameter("uri") == null) {
      log.error("doPost() expects non-null uri parameter");
    } else {
      o = oDao.getOntologyByURI(request.getParameter("uri"));
      if (o == null) {
        if (!VitroVocabulary.vitroURI.equals(request.getParameter("uri"))) {
          log.debug(
              "doPost(): no ontology object found for the namespace "
                  + request.getParameter("uri"));
        }
      } else {
        request.setAttribute("Ontology", o);
      }
    }
    ArrayList<String> results = new ArrayList<String>();
    results.add("Ontology");
    results.add("Namespace");
    results.add("Prefix");
    String name = o == null ? "" : (o.getName() == null) ? "" : o.getName();
    results.add(name);
    String namespace = o == null ? "" : (o.getURI() == null) ? "" : o.getURI();
    results.add(namespace);
    String prefix = o == null ? "" : (o.getPrefix() == null) ? "" : o.getPrefix();
    results.add(prefix);
    request.setAttribute("results", results);
    request.setAttribute("columncount", 3);
    request.setAttribute("suppressquery", "true");

    epo.setDataAccessObject(oDao);
    FormObject foo = new FormObject();
    HashMap<String, List<Option>> OptionMap = new HashMap<String, List<Option>>();

    HashMap formSelect =
        new HashMap(); // tells the JSP what select lists are populated, and thus should be
                       // displayed
    request.setAttribute("formSelect", formSelect);

    // add the options
    foo.setOptionLists(OptionMap);
    epo.setFormObject(foo);

    // funky hack because Ontology.getURI() will append a hash for a hash namespace
    // See OntologyDaoJena.ontologyFromOntologyResource() comments
    String realURI = OntologyDaoJena.adjustOntologyURI(o.getURI());
    request.setAttribute("realURI", realURI);
    request.setAttribute("exportURL", request.getContextPath() + Controllers.EXPORT_RDF);

    RequestDispatcher rd = request.getRequestDispatcher(Controllers.BASIC_JSP);
    request.setAttribute("epoKey", epo.getKey());
    request.setAttribute("bodyJsp", "/templates/edit/specific/ontologies_edit.jsp");
    request.setAttribute("title", "Ontology Control Panel");
    request.setAttribute(
        "css",
        "<link rel=\"stylesheet\" type=\"text/css\" href=\""
            + request.getAppBean().getThemeDir()
            + "css/edit.css\"/>");

    try {
      rd.forward(request, response);
    } catch (Exception e) {
      log.error("OntologyEditController could not forward to view.");
      log.error(e.getMessage());
      log.error(e.getStackTrace());
    }
  }
 private void processExecuteSparqlRequest(VitroRequest vreq) {
   String sparqlQueryStr = vreq.getParameter("sparqlQueryStr");
   OntModel jenaOntModel = ModelAccess.on(getServletContext()).getOntModel();
   jenaOntModel.enterCriticalSection(Lock.READ);
   List<Individual> savedQueryList = new LinkedList<Individual>();
   try {
     Resource sparqlConstructClassRes = ResourceFactory.createResource(SPARQL_CONSTRUCT_CLASS);
     savedQueryList.addAll(jenaOntModel.listIndividuals(sparqlConstructClassRes).toList());
   } finally {
     jenaOntModel.leaveCriticalSection();
   }
   /*ass92*/
   OntologyDao daoObj = vreq.getUnfilteredWebappDaoFactory().getOntologyDao();
   List<Ontology> ontologiesObj = daoObj.getAllOntologies();
   List<String> prefixList = new ArrayList<>();
   if (ontologiesObj != null && ontologiesObj.size() > 0) {
     Iterator<Ontology> ontItr = ontologiesObj.iterator();
     while (ontItr.hasNext()) {
       Ontology ont = ontItr.next();
       prefixList.add(ont.getPrefix() == null ? "(not yet specified)" : ont.getPrefix());
       prefixList.add(ont.getURI() == null ? "" : ont.getURI());
     }
   } else {
     prefixList.add("<strong>" + "No Ontologies added" + "</strong>");
     prefixList.add("<strong>" + "Load Ontologies" + "</strong>");
   }
   vreq.setAttribute("prefixList", prefixList);
   /*complete*/
   if (sparqlQueryStr != null) {
     String validationMessage = "";
     if (vreq.getParameterValues("sourceModelName") == null) {
       validationMessage += "<p>Please select one or more source models.</p>";
     }
     if (vreq.getParameter("destinationModelName") == null) {
       validationMessage += "<p>Please select a destination model</p>";
     }
     if (validationMessage.length() > 0) {
       vreq.setAttribute("validationMessage", validationMessage);
     } else {
       long constructedStmtCount = 0;
       try {
         constructedStmtCount = doExecuteSparql(vreq);
       } catch (QueryParseException qpe) {
         String errorMsg = "<p>Unable to parse query:</p>";
         if (qpe.getMessage() != null) {
           errorMsg += "<p>" + qpe.getMessage() + "</p>";
         }
         vreq.setAttribute("errorMsg", errorMsg);
       } catch (InconsistentOntologyException ioe) {
         String errorMsg = "<p>Inconsistent source ontology:</p>";
         if (ioe.getMessage() != null) {
           errorMsg += "<p>" + ioe.getMessage() + "</p>";
         }
         vreq.setAttribute("errorMsg", errorMsg);
       }
       vreq.setAttribute("constructedStmtCount", constructedStmtCount);
     }
     vreq.setAttribute("savedQueries", savedQueryList);
     vreq.setAttribute("title", "SPARQL CONSTRUCT result");
     vreq.setAttribute("bodyJsp", EXECUTE_SPARQL_JSP);
   } else {
     vreq.setAttribute("savedQueries", savedQueryList);
     vreq.setAttribute("title", "Execute SPARQL Construct");
     vreq.setAttribute("bodyJsp", EXECUTE_SPARQL_JSP);
   }
 }