01: /****************************************************************
02: * Licensed to the Apache Software Foundation (ASF) under one *
03: * or more contributor license agreements. See the NOTICE file *
04: * distributed with this work for additional information *
05: * regarding copyright ownership. The ASF licenses this file *
06: * to you under the Apache License, Version 2.0 (the *
07: * "License"); you may not use this file except in compliance *
08: * with the License. You may obtain a copy of the License at *
09: * *
10: * http://www.apache.org/licenses/LICENSE-2.0 *
11: * *
12: * Unless required by applicable law or agreed to in writing, *
13: * software distributed under the License is distributed on an *
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15: * KIND, either express or implied. See the License for the *
16: * specific language governing permissions and limitations *
17: * under the License. *
18: ****************************************************************/package org.apache.james.jspf.parser;
19:
20: import org.apache.james.jspf.terms.Configuration;
21:
22: import java.util.regex.Matcher;
23:
24: /**
25: *
26: * Provides a MatchResult view of a subset of another MatchResult
27: */
28: public class MatcherBasedConfiguration implements Configuration {
29:
30: private Matcher wrapped;
31:
32: private int start;
33:
34: private int count;
35:
36: /**
37: * @param w
38: * Original MatchResult
39: * @param start
40: * the position where the subresult start
41: * @param count
42: * number of groups part of the subresult
43: */
44: public MatcherBasedConfiguration(Matcher w, int start, int count) {
45: this .wrapped = w;
46: this .count = count;
47: this .start = start;
48: }
49:
50: /**
51: * @see org.apache.james.jspf.terms.Configuration#group(int)
52: */
53: public String group(int arg0) {
54: return wrapped.group(arg0 + start);
55: }
56:
57: /**
58: * @see org.apache.james.jspf.terms.Configuration#groupCount()
59: */
60: public int groupCount() {
61: return count;
62: }
63:
64: }
|