List of usage examples for org.apache.wicket.util.parse.metapattern MetaPattern matcher
public final Matcher matcher(final CharSequence input)
From source file:com.locke.tricks.u.U.java
License:Apache License
@SuppressWarnings("unchecked") public U() {//from w w w.j av a2 s.c o m final IColumn<Utility>[] columns = new IColumn[2]; columns[0] = new PropertyColumn<Utility>(new Model<String>("Code"), "code", "code"); columns[1] = new PropertyColumn<Utility>(new Model<String>("Output"), "output", "output"); final DataTable<Utility> dataTable = new DataTable<Utility>("utilities", columns, this.utilitiesDataProvider, Integer.MAX_VALUE); dataTable.addTopToolbar(new HeadersToolbar(dataTable, new ISortStateLocator() { private ISortState sortState = new SingleSortState(); public ISortState getSortState() { return this.sortState; } public void setSortState(final ISortState state) { this.sortState = state; } })); add(dataTable); this.utilities.add(new Utility("Time.now().toString()") { @Override public String getOutput() { return Time.now().toString(); } }); this.utilities.add(new Utility("Duration.ONE_WEEK.toString()") { @Override public String getOutput() { return Duration.ONE_WEEK.toString(); } }); this.utilities.add(new Utility("Duration.ONE_WEEK.add(Duration.ONE_DAY).toString()") { @Override public String getOutput() { return Duration.ONE_WEEK.add(Duration.ONE_DAY).toString(); } }); this.utilities.add(new Utility("Time.now().add(Duration.ONE_WEEK).toString()") { @Override public String getOutput() { return Time.now().add(Duration.ONE_WEEK).toString(); } }); this.utilities.add(new Utility("Bytes.valueOf(\"512K\") + Bytes.megabytes(1.3)") { @Override public String getOutput() { return Bytes.bytes(Bytes.valueOf("512K").bytes() + Bytes.megabytes(1.3).bytes()).toString(); } }); this.utilities.add(new Utility("Parsing \'13 + 13\' using MetaPattern") { @Override public String getOutput() { final IntegerGroup a = new IntegerGroup(MetaPattern.DIGITS); final IntegerGroup b = new IntegerGroup(MetaPattern.DIGITS); final MetaPattern sum = new MetaPattern(new MetaPattern[] { a, MetaPattern.OPTIONAL_WHITESPACE, MetaPattern.PLUS, MetaPattern.OPTIONAL_WHITESPACE, b }); final Matcher matcher = sum.matcher("13 + 13"); if (matcher.matches()) { return Integer.toString(a.getInt(matcher) + b.getInt(matcher)); } return "Failed to match."; } }); }
From source file:org.wicketstuff.rest.resource.urlsegments.visitor.ScoreMethodAndExtractPathVars.java
License:Apache License
@Override public void visit(MultiParamSegment segment) { String segmentValue = segmentActualValue(segment); MetaPattern metaPatternWithGroups = segment.getMetaPatternWithGroups(); Matcher matcher = metaPatternWithGroups.matcher(segmentValue); if (isSegmentValid = matcher.matches()) { List<ParamSegment> paramSegments = new ArrayList<>(); CollectionUtils.filterCollectionByType(segment.getSubSegments(), paramSegments, ParamSegment.class); for (int i = 1; i <= matcher.groupCount(); i++) { String group = matcher.group(i); String groupName = paramSegments.get(i - 1).getParamName(); addPathVariable(groupName, group); }/* w w w . ja va 2s. co m*/ addScore(1); } }
From source file:org.wicketstuff.rest.SegmentClassesTest.java
License:Apache License
@Test public void testStandardUrlSegmentPattern() { MetaPattern pattern = new MetaPattern(AbstractURLSegment.SEGMENT_PARAMETER); Matcher matcher = pattern.matcher(""); assertFalse(matcher.matches());/*from w ww . ja va 2 s . com*/ matcher = pattern.matcher("seg&ment"); assertFalse(matcher.matches()); matcher = pattern.matcher("segment:"); assertFalse(matcher.matches()); matcher = pattern.matcher("{*}"); assertFalse(matcher.matches()); matcher = pattern.matcher("{segment}"); assertTrue(matcher.matches()); matcher = pattern.matcher("{segment0} a segment {segment1} another segment {segment2}"); assertTrue(matcher.find()); matcher.reset(); assertFalse(matcher.matches()); matcher = pattern.matcher("{117}"); assertFalse(matcher.matches()); pattern = new MetaPattern(AbstractURLSegment.REGEXP_BODY); matcher = pattern.matcher("[0-9]*:abba"); assertTrue(matcher.matches()); matcher = pattern.matcher("^\\(?\\d{3}\\)?[ -]?\\d{3}[ -]?\\d{4}$anotherseg"); assertTrue(matcher.matches()); }
From source file:org.wicketstuff.rest.SegmentClassesTest.java
License:Apache License
@Test public void testParamSegment() throws Exception { String segmentWithRegEx = "{id:[0-9]*:abba}"; AbstractURLSegment segment = AbstractURLSegment.newSegment(segmentWithRegEx); assertTrue(segment instanceof ParamSegment); ParamSegment paramSegment = (ParamSegment) segment; assertEquals(paramSegment.getParamName(), "id"); assertEquals(paramSegment.getMetaPattern().toString(), "[0-9]*:abba"); MetaPattern metaPattern = paramSegment.getMetaPattern(); assertTrue(metaPattern.matcher("1:abba").matches()); assertTrue(metaPattern.matcher("1234521:abba").matches()); assertTrue(metaPattern.matcher(":abba").matches()); String segmentMultiParam = "{segment0}asegment{segment1:^\\(?\\d{3}\\)?[ -]?\\d{3}[ -]?\\d{4}$}anotherseg"; segment = AbstractURLSegment.newSegment(segmentMultiParam); assertTrue(segment instanceof MultiParamSegment); MultiParamSegment multiParamSegment = (MultiParamSegment) segment; List<AbstractURLSegment> subSegments = multiParamSegment.getSubSegments(); assertEquals(4, subSegments.size()); metaPattern = subSegments.get(2).getMetaPattern(); assertEquals(metaPattern.toString(), "^\\(?\\d{3}\\)?[ -]?\\d{3}[ -]?\\d{4}$"); segmentMultiParam = "filename-{symbolicName:[a-z]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}"; segment = AbstractURLSegment.newSegment(segmentMultiParam); multiParamSegment = (MultiParamSegment) segment; metaPattern = multiParamSegment.getMetaPatternWithGroups(); String fileName = "filename-gsaon-1.2.3.zip"; Matcher matcher = metaPattern.matcher(fileName); assertTrue(matcher.matches());// w ww. j a v a 2s .c o m // testing segment parsing with regular expressions assertEquals("gsaon", matcher.group(1)); assertEquals("1.2.3", matcher.group(2)); assertEquals(".zip", matcher.group(3)); matcher = metaPattern.matcher("gsaon-1.2.3.zip"); assertFalse(matcher.matches()); }
From source file:org.wicketstuff.rest.TestSegmentClasses.java
License:Apache License
@Test public void testParamSegment() throws Exception { String segmentWithRegEx = "{id:[0-9]*:abba}"; AbstractURLSegment segment = AbstractURLSegment.newSegment(segmentWithRegEx); assertTrue(segment instanceof ParamSegment); ParamSegment paramSegment = (ParamSegment) segment; assertEquals(paramSegment.getParamName(), "id"); assertEquals(paramSegment.getMetaPattern().toString(), "[0-9]*:abba"); MetaPattern metaPattern = paramSegment.getMetaPattern(); assertTrue(metaPattern.matcher("1:abba").matches()); assertTrue(metaPattern.matcher("1234521:abba").matches()); assertTrue(metaPattern.matcher(":abba").matches()); String segmentMultiParam = "{segment0}asegment{segment1:^\\(?\\d{3}\\)?[ -]?\\d{3}[ -]?\\d{4}$}anotherseg"; segment = AbstractURLSegment.newSegment(segmentMultiParam); assertTrue(segment instanceof MultiParamSegment); MultiParamSegment multiParamSegment = (MultiParamSegment) segment; List<AbstractURLSegment> subSegments = multiParamSegment.getSubSegments(); assertEquals(4, subSegments.size()); metaPattern = subSegments.get(2).getMetaPattern(); assertEquals(metaPattern.toString(), "^\\(?\\d{3}\\)?[ -]?\\d{3}[ -]?\\d{4}$"); segmentMultiParam = "filename-{symbolicName:[a-z]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}"; segment = AbstractURLSegment.newSegment(segmentMultiParam); metaPattern = segment.getMetaPattern(); String fileName = "filename-gsaon-1.2.3.zip"; Matcher matcher = metaPattern.matcher(fileName); assertTrue(matcher.matches());//from w w w .j av a2 s. c o m matcher = metaPattern.matcher("gsaon-1.2.3.zip"); assertFalse(matcher.matches()); HashMap<String, String> map; //testing segment parsing with regular expressions segment.populatePathVariables(map = new HashMap<String, String>(), fileName); assertEquals("gsaon", map.get("symbolicName")); assertEquals("1.2.3", map.get("version")); assertEquals(".zip", map.get("extension")); }