01: /*
02: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
03: [See end of file]
04: $Id: Implementation.java,v 1.10 2008/01/02 12:09:11 andy_seaborne Exp $
05: */
06:
07: package com.hp.hpl.jena.enhanced;
08:
09: import com.hp.hpl.jena.graph.*;
10:
11: /**
12: * <p>
13: * Interface defining a generic factory interface for generating enhanced nodes
14: * from normal graph nodes. Implementation classes should have a public final
15: * member variable called factory of this type.
16: * </p>
17: *
18: * @author <a href="mailto:Jeremy.Carroll@hp.com">Jeremy Carroll</a> (original code)<br>
19: * <a href="mailto:Chris.Dollin@hp.com">Chris Dollin</a> (original code)<br>
20: * <a href="mailto:Ian.Dickinson@hp.com">Ian Dickinson</a> (refactoring and commentage)
21: */
22: public abstract class Implementation {
23:
24: /**
25: * Create a new EnhNode wrapping a Node in the context of an EnhGraph
26: * @param node The node to be wrapped
27: * @param eg The graph containing the node
28: * @return A new enhanced node which wraps node but presents the interface(s)
29: * that this factory encapsulates.
30: */
31: public abstract EnhNode wrap(Node node, EnhGraph eg);
32:
33: /**
34: true iff wrapping (node, eg) would succeed.
35: @param node the node to test for suitability
36: @param eg the enhanced graph the node appears in
37: @return true iff the node can represent our type in that graph
38: */
39: public abstract boolean canWrap(Node node, EnhGraph eg);
40:
41: }
42:
43: /*
44: (c) Copyright 2003, 2004, 2005, 2006, 2007, 2008 Hewlett-Packard Development Company, LP
45: All rights reserved.
46:
47: Redistribution and use in source and binary forms, with or without
48: modification, are permitted provided that the following conditions
49: are met:
50:
51: 1. Redistributions of source code must retain the above copyright
52: notice, this list of conditions and the following disclaimer.
53:
54: 2. Redistributions in binary form must reproduce the above copyright
55: notice, this list of conditions and the following disclaimer in the
56: documentation and/or other materials provided with the distribution.
57:
58: 3. The name of the author may not be used to endorse or promote products
59: derived from this software without specific prior written permission.
60:
61: THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
62: IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
63: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
64: IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
65: INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
66: NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
67: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
68: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
69: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
70: THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
71: */
|