Examples of CapturingGroup


Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

         {
            switch (chars[cursor])
            {
            case '{':
               int startPos = cursor;
               CapturingGroup group = ParseTools.balancedCapture(chars, startPos, chars.length - 1, type);
               cursor = group.getEnd();

               groups.add(new RegexGroup(group, parameterIndex++));

               break;
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

      {
         throw new ParameterizationException("Must supply [" + groups.size() + "] values to build output string.");
      }

      StringBuilder builder = new StringBuilder();
      CapturingGroup last = null;

      int index = 0;
      for (RegexGroup param : groups)
      {
         CapturingGroup capture = param.getCapture();

         if ((last != null) && (last.getEnd() < capture.getStart()))
         {
            builder.append(Arrays.copyOfRange(chars, last.getEnd() + 1, capture.getStart()));
         }
         else if ((last == null) && (capture.getStart() > 0))
         {
            builder.append(Arrays.copyOfRange(chars, 0, capture.getStart()));
         }

         builder.append(values.get(index++));

         last = capture;
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

   @Override
   public String build(final Map<String, Object> values) throws ParameterizationException
   {
      StringBuilder builder = new StringBuilder();
      CapturingGroup last = null;

      for (RegexGroup param : groups)
      {
         CapturingGroup capture = param.getCapture();

         if ((last != null) && (last.getEnd() < capture.getStart()))
         {
            builder.append(Arrays.copyOfRange(chars, last.getEnd() + 1, capture.getStart()));
         }
         else if ((last == null) && (capture.getStart() > 0))
         {
            builder.append(Arrays.copyOfRange(chars, 0, capture.getStart()));
         }

         if (!values.containsKey(param.getName()))
            throw new ParameterizationException("No value supplied for parameter [" + param.getName()
                     + "] when building pattern [" + getPattern() + "].");
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

            {
                switch (chars[cursor])
                {
                case '{':
                    int startPos = cursor;
                    CapturingGroup group = ParseTools.balancedCapture(chars, startPos, chars.length - 1, type);
                    cursor = group.getEnd();

                    groups.add(new RegexGroup(group, parameterIndex++));

                    break;
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

    {
        if (compiledPattern == null)
        {
            StringBuilder patternBuilder = new StringBuilder();

            CapturingGroup last = null;
            for (RegexGroup group : groups)
            {
                CapturingGroup capture = group.getCapture();

                if ((last != null) && (last.getEnd() < capture.getStart() - 1))
                {
                    patternBuilder.append(new char[] { '\\', 'Q' });
                    patternBuilder.append(Arrays.copyOfRange(chars, last.getEnd() + 1, capture.getStart()));
                    patternBuilder.append(new char[] { '\\', 'E' });
                }
                else if ((last == null) && (capture.getStart() > 0))
                {
                    patternBuilder.append(new char[] { '\\', 'Q' });
                    patternBuilder.append(Arrays.copyOfRange(chars, 0, capture.getStart()));
                    patternBuilder.append(new char[] { '\\', 'E' });
                }

                patternBuilder.append('(');
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

public class ParseToolsTest
{
   @Test
   public void testBalancedCapture()
   {
      CapturingGroup group = ParseTools.balancedCapture("/foo/{bar}/cab".toCharArray(), 5, 12, CaptureType.BRACE);
      Assert.assertEquals(9, group.getEnd());
      Assert.assertArrayEquals("bar".toCharArray(), group.getCaptured());

      group = ParseTools.balancedCapture("/foo/{{a}}/cab".toCharArray(), 5, 12, CaptureType.BRACE);
      Assert.assertEquals(9, group.getEnd());
      Assert.assertArrayEquals("{a}".toCharArray(), group.getCaptured());

      group = ParseTools.balancedCapture("/foo/{{a}}/cab".toCharArray(), 0, 12, CaptureType.REGEX);
      Assert.assertEquals(4, group.getEnd());
      Assert.assertArrayEquals("foo".toCharArray(), group.getCaptured());
   }
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

   }

   @Test
   public void testBalancedCaptureIgnoresEscapedTerminations()
   {
      CapturingGroup group = ParseTools.balancedCapture("/foo/{bar\\}}/cab".toCharArray(), 5, 12, CaptureType.BRACE);
      Assert.assertEquals(11, group.getEnd());
      Assert.assertArrayEquals("bar\\}".toCharArray(), group.getCaptured());
   }
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

   }

   @Test
   public void testBalancedCaptureIgnoresEscapedNestedBeginChars()
   {
      CapturingGroup group = ParseTools.balancedCapture("/foo/{\\{a}}/cab".toCharArray(), 5, 12, CaptureType.BRACE);
      Assert.assertEquals(9, group.getEnd());
      Assert.assertArrayEquals("\\{a".toCharArray(), group.getCaptured());
   }
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup

   }

   @Test
   public void testBalancedCaptureReturnsEmptyForEmptyCapture() throws Exception
   {
      CapturingGroup group = ParseTools.balancedCapture("/foo/{}/cab".toCharArray(), 5, 8, CaptureType.BRACE);
      Assert.assertEquals(6, group.getEnd());
      Assert.assertArrayEquals("".toCharArray(), group.getCaptured());
   }
View Full Code Here

Examples of org.ocpsoft.rewrite.util.ParseTools.CapturingGroup


   @Test
   public void testBalancedCaptureNested1()
   {
      CapturingGroup group = ParseTools.balancedCapture("(one(two)(three(four(five))))".toCharArray(), 0, 28,
               CaptureType.PAREN);
      Assert.assertEquals(28, group.getEnd());
      Assert.assertArrayEquals("one(two)(three(four(five)))".toCharArray(), group.getCaptured());
   }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.