RERef compile(String pattern) { for (RERef regex : regexes) { if (regex.re.getPattern().equals(pattern)) { return regex; } } // RE regex = factory.compile(pattern); RERef holder = new RERef(regexes.length, regex); regexes = Tools.appendTo(regexes, holder); return holder; }
RERef compile(String pattern) { for (RERef regex : regexes) { if (regex.re.getPattern().equals(pattern)) { return regex; } } // RE regex = factory.compile(pattern); RERef holder = new RERef(regexes.length, regex); regexes = Tools.appendTo(regexes, holder); return holder; }
@Test public void testPatternSegment() throws Exception { Router router = new Router(); router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching(".*"))); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]*))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.A, patternRoute.params[0].name); assertEquals("^(.*)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }
@Test public void testPatternSegment() throws Exception { Router router = new Router(); router.append("/{a}", Collections.singletonMap(Names.A, PathParam.matching(".*"))); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]*))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.A, patternRoute.params[0].name); assertEquals("^(.*)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }
@Test public void testParameterSegment() throws Exception { Router router = new Router(); router.append("/{a}"); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]+))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.A, patternRoute.params[0].name); assertEquals("^(.+)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }
@Test public void testParameterSegment() throws Exception { Router router = new Router(); router.append("/{a}"); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]+))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.A, patternRoute.params[0].name); assertEquals("^(.+)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }
@Test public void testQualifiedParameterSegment() throws Exception { Router router = new Router(); router.append("/{q:a}"); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]+))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.Q_A, patternRoute.params[0].name); assertEquals("^(.+)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }
@Test public void testQualifiedParameterSegment() throws Exception { Router router = new Router(); router.append("/{q:a}"); // assertEquals(0, router.getSegmentNames().size()); assertEquals(1, router.getPatternSize()); PatternRoute patternRoute = router.getPattern(0); assertEquals("(?:([^/]+))(?:(?<=^)|(?=/)|$)", patternRoute.pattern.re.getPattern()); assertEquals(1, patternRoute.params.length); assertEquals(Names.Q_A, patternRoute.params[0].name); assertEquals("^(.+)$", patternRoute.params[0].matchingRegex[0].re.getPattern()); assertFalse(patternRoute.params[0].preservePath); assertEquals(2, patternRoute.chunks.length); assertEquals("", patternRoute.chunks[0]); assertEquals("", patternRoute.chunks[1]); }