Package org.tmatesoft.hg.internal

Examples of org.tmatesoft.hg.internal.ConfigFileParser$Entry


  }

  @Override
  protected void doDelete(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {
    Entry e = entry(req);
    S3Object remove = map.remove(e);
    if (remove == null) {
      resp.sendError(404, "Not found " + e);
    } else {
      resp.sendError(HttpURLConnection.HTTP_NO_CONTENT, "Deleted");
View Full Code Here


    }

  }

  private Entry entry(HttpServletRequest req) {
    return new Entry(key(uri(req)));
  }
View Full Code Here

        log("doGet " + uri);
    if ("/".equals(uri.getPath())) {
      list(req, resp);
    } else {
      String key = uri.getPath().substring(1);
      Entry e = new Entry(key);
      S3Object obj = map.get(e);
        if (debug)
          log("map.get(" + key + ") = " + obj);
      if (obj == null) {
        resp.sendError(404, "Not here: " + e);
View Full Code Here

    if (maxKeysStr != null)
      maxKeys = Integer.parseInt(maxKeysStr);
    Writer w = new Writer();
    SortedMap<Entry, S3Object> submap = new TreeMap<Entry, S3Object>(map);
    if (prefix != null)
      submap = submap.tailMap(new Entry(prefix));
    int keyCount = 0;
    boolean truncated = false;
    String nextMarker = null;
    for (Entry e : submap.keySet()) {
      if (++keyCount > maxKeys) {
View Full Code Here

    log("doPut " + uri);
    if ("/".equals(uri.getPath())) {
      log("create bucket");
      bucket = true;
    } else {
      Entry e = new Entry(key(uri));
      e.setLastModified(new Date());
      e.setSize(req.getContentLength());
      e.setOwner(new Owner("id", "name"));
      ByteArrayOutputStream os = new ByteArrayOutputStream();
      ServletInputStream is = req.getInputStream();
      byte b[] = new byte[128];
      while (true) {
        int len = is.read(b);
View Full Code Here

                    for (TestMethod testMethod : inputTestData.getTestMethod()) {
                        List<TestRecord> originalTestRecords = testMethod.getTestRecord();
                        for (TestRecord originalTestRecord : originalTestRecords) {
                            if (originalTestRecord.getId().equals(testRecord.get(RECORD_POSITION))) {
                                OutputData outputData = new OutputData();
                                Entry outputEntry = new Entry();
                                outputEntry.setKey(ACTUAL_RESULT);
                                outputEntry.setValue(testRecord.get(ACTUAL_RESULT).toString());
                                outputData.getEntry().add(outputEntry);
                                originalTestRecord.setOutputData(outputData);
                                outputDataAdded = true;
                                break;
                            }
View Full Code Here

                    for (TestMethod testMethod : inputTestData.getTestMethod()) {
                        List<TestRecord> originalTestRecords = testMethod.getTestRecord();
                        for (TestRecord originalTestRecord : originalTestRecords) {
                            if (originalTestRecord.getId().equals(testRecord.get(RECORD_POSITION))) {
                                OutputData outputData = new OutputData();
                                Entry outputEntry = new Entry();
                                outputEntry.setKey(ACTUAL_RESULT);
                                outputEntry.setValue(testRecord.get(ACTUAL_RESULT).toString());
                                Entry durationEntry = new Entry();
                                durationEntry.setKey(DURATION);
                                durationEntry.setValue(testRecord.get(DURATION).toString());
                                outputData.getEntry().add(outputEntry);
                                outputData.getEntry().add(durationEntry);
                                if(testRecord.get(TEST_STATUS) != null){
                                    Entry statusEntry = new Entry();
                                    statusEntry.setKey(TEST_STATUS);
                                    statusEntry.setValue(testRecord.get(TEST_STATUS).toString());
                                    outputData.getEntry().add(statusEntry);
                                }
                               
                               
                                originalTestRecord.setOutputData(outputData);
                                outputDataAdded = true;
                                break;
                            }
                        }
                        if (outputDataAdded) {
                            break;
                        }
                    }
                }else{
                    //Method did not return any data. So only write the duration as output
                    for (TestMethod testMethod : inputTestData.getTestMethod()) {
                        List<TestRecord> originalTestRecords = testMethod.getTestRecord();
                        for (TestRecord originalTestRecord : originalTestRecords) {
                            if (originalTestRecord.getId().equals(testRecord.get(RECORD_POSITION))) {
                                OutputData outputData = new OutputData();
                                Entry durationEntry = new Entry();
                                durationEntry.setKey(DURATION);
                                durationEntry.setValue(testRecord.get(DURATION).toString());
                                outputData.getEntry().add(durationEntry);
                                originalTestRecord.setOutputData(outputData);
                                outputDataAdded = true;
                                break;
                            }
View Full Code Here

  private void doTest(byte[] input, byte[] expected) throws IOException {
    doTest(input, expected, null);
  }

  private void doTest(byte[] input, byte[] expected, Inspector insp) throws IOException {
    ConfigFileParser p = new ConfigFileParser();
    p.parse(new ByteArrayInputStream(input));
    if (insp != null) {
      insp.visit(p);
    }
    ByteArrayOutputStream out = new ByteArrayOutputStream(input.length);
    p.update(out);
    byte[] result = out.toByteArray();
    Assert.assertArrayEquals(expected, result);
  }
View Full Code Here

   */
  public void execute() throws HgMissingConfigElementException, HgIOException, HgException {
    try {
      ConfigFile cfgRead = new ConfigFile(sessionCtx);
      cfgRead.addLocation(configFile);
      ConfigFileParser cfgWrite = new ConfigFileParser();
      FileInputStream fis = new FileInputStream(configFile);
      cfgWrite.parse(fis);
      fis.close();
      for (Operation op : changes) {
        if (!ignoreMissingKeys && !cfgRead.hasSection(op.section)) {
          throw new HgMissingConfigElementException("Bad section name", op.section, op.key);
        }
        Map<String, String> sect = cfgRead.getSection(op.section);
        if (!ignoreMissingKeys && !sect.containsKey(op.key)) {
          throw new HgMissingConfigElementException("Bad key name", op.section, op.key);
        }
        String oldValue = sect.get(op.key);
        if (oldValue == null) {
          oldValue = "";
        }
        switch (op.kind) {
        case AddValue: {
          String separator = ", "; // XXX shall parse and find out separator kind in use
          String newValue = oldValue + separator + op.value;
          if (sect.containsKey(op.key)) {
            cfgWrite.change(op.section, op.key, newValue);
          } else {
            cfgWrite.add(op.section, op.key, newValue);
          }
          break;
        }
        case DelValue: {
          if (!ignoreMissingKeys && (oldValue.length() == 0 || !oldValue.contains(op.value))) {
            throw new HgMissingConfigElementException(String.format("Bad value '%s' to delete from '%s'", op.value, oldValue), op.section, op.key);
          }
          int start = oldValue.indexOf(op.value);
          if (start == -1) {
            // nothing to change
            break;
          }
          int commaPos = -1;
          for (int i = start-1; i >=0; i--) {
            if (oldValue.charAt(i) == ',') {
              commaPos = i;
              break;
            }
          }
          for (int i = start + op.value.length(); commaPos == -1 && i < oldValue.length(); i++) {
            if (oldValue.charAt(i) == ',') {
              commaPos = i;
              break;
            }
          }
          String newValue;
          if (commaPos >= 0) {
            if (commaPos < start) {
              // from preceding comma up to end of value
              newValue = oldValue.substring(0, commaPos) + oldValue.substring(start + op.value.length());
            } else {
              // from value start up to and including subsequent comma
              newValue = oldValue.substring(0, start) + oldValue.substring(commaPos+1);
            }
          } else {
            // found no separator, just remove the value
            // extra whitespaces (if space, not a comma is a separator) won't hurt
            newValue = oldValue.substring(0, start) + oldValue.substring(start + op.value.length());
          }
          cfgWrite.change(op.section, op.key, newValue);
          break;
        }
        case SetValue: {
          if (sect.containsKey(op.key)) {
            cfgWrite.change(op.section, op.key, op.value);
          } else {
            cfgWrite.add(op.section, op.key, op.value);
          }
          break;
        }
        case DelEntry: {
          cfgWrite.delete(op.section, op.key);
          break;
        }
        default: throw new HgInvalidStateException(String.format("Unknown change %s", op.kind));
        }
      }
      FileOutputStream fos = new FileOutputStream(configFile);
      cfgWrite.update(fos);
      fos.close();
    } catch (IOException ex) {
      String m = String.format("Failed to update configuration file %s", configFile);
      throw new HgBadArgumentException(m, ex); // TODO [post-1.0] better exception, it's not bad argument case
    }
View Full Code Here

TOP

Related Classes of org.tmatesoft.hg.internal.ConfigFileParser$Entry

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.