01: /*
02: * <copyright>
03: *
04: * Copyright 2000-2004 BBNT Solutions, LLC
05: * under sponsorship of the Defense Advanced Research Projects
06: * Agency (DARPA).
07: *
08: * You can redistribute this software and/or modify it under the
09: * terms of the Cougaar Open Source License as published on the
10: * Cougaar Open Source Website (www.cougaar.org).
11: *
12: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
13: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23: *
24: * </copyright>
25: */
26: package org.cougaar.lib.web.arch.util;
27:
28: /**
29: * Returned by <code>PrefixTable.match(input)</code> if the
30: * matched entry was not an exact match.
31: * <p>
32: * For example, if the table contains "/foo", and the
33: * match input was "/foo/bar", the table will return
34: * a PrefixMatch where <code>prefix=/foo & tail=/bar</code>.
35: */
36: public class PrefixMatch {
37: private final String prefix;
38: private final String tail;
39: private final Object o;
40:
41: public PrefixMatch(String prefix, String tail, Object o) {
42: this .prefix = prefix;
43: this .tail = tail;
44: this .o = o;
45: if (prefix == null || tail == null || o == null) {
46: throw new IllegalArgumentException("null arg");
47: }
48: }
49:
50: public String getPrefix() {
51: return prefix;
52: }
53:
54: public String getTail() {
55: return tail;
56: }
57:
58: public Object getValue() {
59: return o;
60: }
61:
62: public String toString() {
63: return "(" + prefix + ", " + tail + ", " + o + ")";
64: }
65: }
|