01: /*
02: (c) Copyright 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP, all rights reserved.
03: [See end of file]
04: $Id: StatementBoundaryBase.java,v 1.5 2008/01/02 12:05:46 andy_seaborne Exp $
05: */
06: package com.hp.hpl.jena.rdf.model;
07:
08: import com.hp.hpl.jena.graph.Triple;
09: import com.hp.hpl.jena.graph.TripleBoundary;
10:
11: /**
12: StatementBoundaryBase - a base class for StatementBoundarys, with
13: built-in converstion to triples and a continueWith as well as a stopAt.
14:
15: @author kers
16: */
17: public abstract class StatementBoundaryBase implements
18: StatementBoundary {
19: /**
20: Method to over-ride to define what stops the boundary search; default
21: definition is !continueWith(s). <i>exactly one</code> of these two methods
22: must be defined.
23: */
24: public boolean stopAt(Statement s) {
25: return !continueWith(s);
26: }
27:
28: /**
29: Method to over-ride to define what continues the boundary search; default
30: definition is !stopAt(s). <i>exactly one</code> of these two methods
31: must be defined.
32: */
33: public boolean continueWith(Statement s) {
34: return !stopAt(s);
35: }
36:
37: /**
38: Expresses this StatementBoundary as a TripleBoundary.
39: */
40: public final TripleBoundary asTripleBoundary(Model m) {
41: return convert(m, this );
42: }
43:
44: /**
45: Answer a TripleBoundary that is implemented in terms of a StatementBoundary.
46: */
47: public static TripleBoundary convert(final Model s,
48: final StatementBoundary b) {
49: return new TripleBoundary() {
50: public boolean stopAt(Triple t) {
51: return b.stopAt(s.asStatement(t));
52: }
53: };
54: }
55: }
56:
57: /*
58: (c) Copyright 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
59: All rights reserved.
60:
61: Redistribution and use in source and binary forms, with or without
62: modification, are permitted provided that the following conditions
63: are met:
64:
65: 1. Redistributions of source code must retain the above copyright
66: notice, this list of conditions and the following disclaimer.
67:
68: 2. Redistributions in binary form must reproduce the above copyright
69: notice, this list of conditions and the following disclaimer in the
70: documentation and/or other materials provided with the distribution.
71:
72: 3. The name of the author may not be used to endorse or promote products
73: derived from this software without specific prior written permission.
74:
75: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
76: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
77: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
78: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
79: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
80: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
81: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
82: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
83: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
84: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
85: */
|