예제 #1
0
  @RequestMapping(value = "/{needId}", method = RequestMethod.GET)
  public String viewNeed(@PathVariable String needId, Model model) {

    model.addAttribute("needId", needId);

    List<Need> needs = needRepository.findById(Long.valueOf(needId));
    if (needs.isEmpty()) return "noNeedFound";

    Need need = needs.get(0);
    model.addAttribute("active", need.getState() != NeedState.ACTIVE ? "activate" : "deactivate");
    model.addAttribute("needURI", need.getNeedURI());
    List<Facet> facets = facetRepository.findByNeedURI(need.getNeedURI());

    NeedPojo needCommandPojo = new NeedPojo(facets);
    model.addAttribute("command", needCommandPojo);

    NeedPojo pojo =
        new NeedPojo(
            need.getNeedURI(),
            linkedDataSource.getDataForResource(need.getNeedURI()).getDefaultModel());
    pojo.setState(need.getState());
    model.addAttribute("pojo", pojo);

    // set facets on 'command': (needed for the dropdown list in the 'connect' control TODO:
    // deuglify
    needCommandPojo.setNeedFacetURIs(pojo.getNeedFacetURIs());

    return "viewNeed";
  }
예제 #2
0
  // TODO use NeedModelBuilder here instead
  @RequestMapping(value = "/create", method = RequestMethod.POST)
  public String createNeedPost(@ModelAttribute("SpringWeb") NeedPojo needPojo, Model model)
      throws Exception {
    URI needURI;

    try {
      URI ownerURI = this.uriService.getOwnerProtocolOwnerServiceEndpointURI();

      NeedPojoNeedModelBuilder needPojoNeedModelBuilder = new NeedPojoNeedModelBuilder(needPojo);
      needPojoNeedModelBuilder.setUri("no:uri");
      com.hp.hpl.jena.rdf.model.Model needModel = needPojoNeedModelBuilder.build();
      needModel.setNsPrefix("", "no:uri");

      if (needPojo.getWonNode().equals("")) {
        ListenableFuture<URI> futureResult =
            ownerService.createNeed(needModel, needPojo.getState() == NeedState.ACTIVE, null);
        needURI = futureResult.get();
      } else {
        ListenableFuture<URI> futureResult =
            ownerService.createNeed(
                needModel,
                needPojo.getState() == NeedState.ACTIVE,
                URI.create(needPojo.getWonNode()),
                null);
        needURI = futureResult.get();
      }

      List<Need> needs = needRepository.findByNeedURI(needURI);
      // TODO: race condition between need saving logic and redirect. adapt interface.
      if (needs.size() == 1) return "redirect:/need/" + needs.get(0).getId().toString();
      // return viewNeed(need.getId().toString(), model);
    } catch (IllegalNeedContentException e) {
      logger.warn("caught IllegalNeedContentException:", e);
    }

    model.addAttribute("command", new NeedPojo());

    return "createNeed";
  }
예제 #3
0
  @RequestMapping(value = "/{needId}/connect", method = RequestMethod.POST)
  public String connect2Need(
      @PathVariable String needId, @ModelAttribute("SpringWeb") NeedPojo needPojo, Model model) {
    try {
      List<Need> needs = needRepository.findById(Long.valueOf(needId));
      if (needs.isEmpty()) return "noNeedFound";

      Need need1 = needs.get(0);

      com.hp.hpl.jena.rdf.model.Model facetModel =
          WonRdfUtils.FacetUtils.createFacetModelForHintOrConnect(
              URI.create(needPojo.getOwnFacetURI()), URI.create(needPojo.getRemoteFacetURI()));
      ownerService.connect(need1.getNeedURI(), new URI(needPojo.getNeedURI()), facetModel, null);
      return "redirect:/need/"
          + need1.getId().toString(); // viewNeed(need1.getId().toString(), model);
    } catch (URISyntaxException e) {
      logger.warn("caught URISyntaxException:", e);
    } catch (ConnectionAlreadyExistsException e) {
      logger.warn("caught ConnectionAlreadyExistsException:", e);
    } catch (IllegalMessageForNeedStateException e) {
      logger.warn("caught IllegalMessageForNeedStateException:", e);
    } catch (NoSuchNeedException e) {
      logger.warn("caught NoSuchNeedException:", e);
    } catch (InterruptedException e) {
      logger.warn("caught InterruptedException", e);
    } catch (ExecutionException e) {
      logger.warn("caught ExcutionException", e);
    } catch (CamelConfigurationFailedException e) {
      logger.warn("caught CameConfigurationException", e);
      logger.warn("caught CamelConfigurationFailedException", e);
    } catch (Exception e) {
      logger.warn("caught Exception", e);
    }

    return "noNeedFound";
  }