KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > hp > hpl > jena > rdf > model > RDFNode


1 /*
2  * (c) Copyright 2000, 2001, 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * 3. The name of the author may not be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15
16  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  *
27  * RDFNode.java
28  *
29  * Created on 25 July 2000, 13:13
30  */

31
32 package com.hp.hpl.jena.rdf.model;
33
34 import com.hp.hpl.jena.graph.FrontsNode;
35 /** An RDF Resource or an RDF Literal.
36  *
37  * <p><CODE>RDFNode</CODE> represents the methods which RDF Resources and RDF
38  * Literals have in common.</p>
39  * <p>Chris added the _as_ method to allow RDFNodes to participate in polymorphic
40  * conversions.
41  * @author bwm
42  * @version Release='$Name: $' Revision='$Revision: 1.9 $' Date='$Date: 2005/02/21 12:14:22 $'
43  */

44 public interface RDFNode extends FrontsNode
45 {
46     /** Return a String representation of the node. The form of the string depends
47      * on the type of the node.
48      * @return a String representation of this object.
49      */

50     public String JavaDoc toString();
51     
52     /**
53         RDFNodes can be converted to different implementation types. Convert
54         this RDFNode to a type supporting the <code>view</code>interface. The
55         resulting RDFNode should be an instance of <code>view</code> and should
56         have any internal invariants as specified.
57     <p>
58         If the RDFNode cannot be converted, an exception is thrown.
59     */

60     public RDFNode as( Class JavaDoc view );
61     
62     /**
63         return true iff this RDFNode can be viewed as a _view_.
64     */

65     public boolean canAs( Class JavaDoc view );
66     
67     /**
68         returns a .equals() version of this node, except that its in the model m.
69         
70         @param m a model to move the node to
71         @return this, if it's already in m (or no model), a copy in m otherwise
72     */

73     public RDFNode inModel( Model m );
74     
75     /**
76         Apply the appropriate method of the visitor to this node's content and
77         return the result.
78         
79         @param rv an RDFVisitor with a method for URI/blank/literal nodes
80         @return the result returned by the selected method
81     */

82     public Object JavaDoc visitWith( RDFVisitor rv );
83 }
84
Popular Tags