01: /*
02: (c) Copyright 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: All rights reserved - see end of file.
04: $Id: Matcher.java,v 1.4 2008/01/02 12:07:57 andy_seaborne Exp $
05: */
06:
07: package com.hp.hpl.jena.graph.query;
08:
09: import com.hp.hpl.jena.graph.Triple;
10:
11: /**
12: A Matcher knows how to match itself against a concrete triple (the triple
13: to be matched) and a domain (of bindings to check and extend). It is part
14: of the improved-we-hope PatternStage code.
15: @author kers
16: */
17: public abstract class Matcher {
18: /**
19: Answer true iff we match the triple <code>t</code> given the bindings
20: in <code>d</code>, updating those bindings if appropriate; the bindings
21: may be updated even if the match answers <code>false</code>.
22: */
23: public abstract boolean match(Domain d, Triple t);
24:
25: /**
26: This matcher always answers <code>true</code> and doesn't even look at
27: the domain, never mind update it.
28: */
29: public static final Matcher always = new Matcher() {
30: public boolean match(Domain d, Triple t) {
31: return true;
32: }
33: };
34: }
35:
36: /*
37: * (c) Copyright 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
38: * All rights reserved.
39: *
40: * Redistribution and use in source and binary forms, with or without
41: * modification, are permitted provided that the following conditions
42: * are met:
43: * 1. Redistributions of source code must retain the above copyright
44: * notice, this list of conditions and the following disclaimer.
45: * 2. Redistributions in binary form must reproduce the above copyright
46: * notice, this list of conditions and the following disclaimer in the
47: * documentation and/or other materials provided with the distribution.
48: * 3. The name of the author may not be used to endorse or promote products
49: * derived from this software without specific prior written permission.
50: *
51: * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
52: * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
53: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
54: * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
55: * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
56: * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
57: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
58: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
59: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
60: * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
61: */
|