Beispiel #1
0
  public static Result postGenerate(String handler_json) {

    String oper = "";

    RequestBody body = request().body();
    if (body == null) {
      return ok(completeAnnotation.render("Error processing form: form appears to be empty."));
    }

    String textBody = body.asText();
    Properties p = new Properties();
    try {
      p.load(new StringReader(textBody));
    } catch (Exception e) {
      e.printStackTrace();
      return ok(completeAnnotation.render("Error processing form: form appears to be empty."));
    }

    System.out.println("Selection: " + p.getProperty("submitButton"));
    if (p.getProperty("submitButton") != null) oper = p.getProperty("submitButton");

    if (oper.equals(OPER_FINISH)) {
      return ok(completeAnnotation.render("Annotation operation finished."));
    }

    NameSpaces ns = NameSpaces.getInstance();
    String preamble = FRAG_START_PREAMBLE;
    preamble += ns.printNameSpaceList();
    preamble += "\n";

    /*
     * Insert KB
     */

    preamble += FRAG_KB_PART1;
    preamble += Play.application().configuration().getString("hadatac.console.kb");
    preamble += FRAG_KB_PART2;

    try {
      handler_json = URLDecoder.decode(handler_json, "UTF-8");
    } catch (Exception e) {
      e.printStackTrace();
    }
    System.out.println(handler_json);

    ObjectMapper mapper = new ObjectMapper();
    CSVAnnotationHandler handler = null;
    try {
      handler = mapper.readValue(handler_json, CSVAnnotationHandler.class);

      /*
       * Insert Data Set
       */

      preamble += "<" + DataFactory.getNextURI(DataFactory.DATASET_ABBREV) + ">";
      preamble += FRAG_DATASET;
      preamble += handler.getDataCollectionUri() + ">; ";

      int i = 0;
      int timeStampIndex = -1;
      ArrayList<Integer> mt = new ArrayList<Integer>();
      for (String str : handler.getFields()) {
        // System.out.println(str);
        // System.out.println("get " + i + "-characteristic: [" + p.getProperty(i +
        // "-characteristic") + "]");
        // System.out.println("get " + i + "-unit:           [" + p.getProperty(i + "-unit") + "]");
        if ((p.getProperty(i + "-characteristic") != null)
            && (!p.getProperty(i + "-characteristic").equals(""))
            && (p.getProperty(i + "-unit") != null)
            && (!p.getProperty(i + "-unit").equals(""))) {
          if (p.getProperty(i + "-unit").equals(FRAG_IN_DATE_TIME)) {
            timeStampIndex = i;
          } else {
            mt.add(i);
          }
        }
        i++;
      }

      preamble += FRAG_HAS_MEASUREMENT_TYPE;
      int aux = 0;
      for (Integer mt_count : mt) {
        preamble += FRAG_MT + aux++ + "> ";
      }
      preamble += ".\n\n";

      /*
       * Insert measurement types
       */

      aux = 0;
      for (Integer mt_count : mt) {
        preamble += FRAG_MT + aux;
        preamble += FRAG_MEASUREMENT_TYPE_PART1;
        if (timeStampIndex != -1) {
          preamble += FRAG_IN_DATE_TIME;
          preamble += FRAG_IN_DATE_TIME_SUFFIX;
        }
        preamble += FRAG_MEASUREMENT_TYPE_PART2;
        preamble += mt_count;
        preamble += FRAG_MEASUREMENT_TYPE_PART3;
        preamble += "<" + p.getProperty(mt_count + "-characteristic") + ">";
        preamble += FRAG_MEASUREMENT_TYPE_PART4;
        preamble += "<" + p.getProperty(mt_count + "-unit") + ">";
        preamble += " .\n";
      }

      if (timeStampIndex != -1) {
        preamble += "\n";
        preamble += FRAG_IN_DATE_TIME_STATEMENT + " " + timeStampIndex + "  . \n";
      }

      if (textBody == null) {
        badRequest("Expecting text/plain request body");
      }
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
      return ok(completeAnnotation.render("Error processing form. Please restart form."));
    }

    preamble += FRAG_END_PREAMBLE;

    if (oper.equals(OPER_PREAMBLE)) {
      return ok(preamble).as("text/turtle");
    }

    if (oper.equals(OPER_CCSV)) {
      File newFile = new File(handler.getDatasetName());
      try {
        preamble += FileUtils.readFileToString(newFile, "UTF-8");
      } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return ok(completeAnnotation.render("Error reading cached CSV file. Please restart form."));
      }
      return ok(preamble).as("text/turtle");
    }

    if (oper.equals(OPER_UPLOAD)) {}

    return ok(completeAnnotation.render("Error processing form: unspecified download operation."));
  }