Package org.tmatesoft.hg.internal

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


            String pageName = componentClassResolver.resolvePageClassNameToPageName(pageClass);


            final Page page = this.pageCache.get(pageName);

            final Block block = page.getRootElement().getBlock(
                    contribution.getBlockId());

            result.add(block);
        }
        return result;
View Full Code Here


        return overrideSource.hasDisplayBlock(datatype) || masterSource.hasDisplayBlock(datatype);
    }

    public Block getDisplayBlock(String datatype)
    {
        Block result = overrideSource.getDisplayBlock(datatype);

        if (result == null)
            result = masterSource.getDisplayBlock(datatype);

        if (result == null)
View Full Code Here

        return result;
    }

    public Block getEditBlock(String datatype)
    {
        Block result = overrideSource.getEditBlock(datatype);

        if (result == null)
            result = masterSource.getEditBlock(datatype);

        if (result == null)
View Full Code Here

    }

    @Test
    public void false_test_renders_else_block()
    {
        Block block = mockBlock();

        replay();

        If component = new If();
View Full Code Here

    {
        Page page = newPage(PAGE_NAME);
        Component component = mockComponent();
        ComponentModel model = mockComponentModel();
        TypeCoercer coercer = mockTypeCoercer();
        Block block = mockBlock();
        Logger logger = mockLogger();

        Instantiator ins = newInstantiator(component, model);

        train_getLogger(model, logger);
View Full Code Here

    {
        Page page = newPage(PAGE_NAME);
        Component component = mockComponent();
        ComponentModel model = mockComponentModel();
        TypeCoercer coercer = mockTypeCoercer();
        Block block1 = mockBlock();
        Block block2 = mockBlock();
        Logger logger = mockLogger();

        train_getLogger(model, logger);

        Instantiator ins = newInstantiator(component, model);
View Full Code Here

    }


    public Block getBlockForColumn()
    {
        Block override = overrides.getOverrideBlock(columnModel.getId() + "Header");

        if (override != null) return override;

        return standardHeader;
    }
View Full Code Here

     * Invoked from subclasses to do the rendering. The subclass controls the naming convention for locating an
     * overriding Block parameter (it is the name of the property possibly suffixed with a value).
     */
    protected Object renderPropertyValue(MarkupWriter writer, String overrideBlockId)
    {
        Block override = overrides.getOverrideBlock(overrideBlockId);

        if (override != null) return override;

        String datatype = model.getDataType();

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$Block

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.