com.hp.hpl.jena.enhanced
Class EnhNode

java.lang.Object
  extended by com.hp.hpl.jena.enhanced.Polymorphic<RDFNode>
      extended by com.hp.hpl.jena.enhanced.EnhNode
All Implemented Interfaces:
FrontsNode

public class EnhNode
extends Polymorphic<RDFNode>
implements FrontsNode

A specialisation of Polymorphic that models an extended node in a an extended graph. An extended node wraps a normal node, and adds additional convenience access or user affordances, though the state remains in the graph itself.

Author:
Jeremy Carroll (original code)
Chris Dollin (original code)
Ian Dickinson (refactoring and commentage)

Constructor Summary
EnhNode(Node n, EnhGraph g)
           
 
Method Summary
<T extends RDFNode>
T
as(Class<T> t)
          allow subclasses to implement RDFNode & its subinterface
 Node asNode()
          Answer the graph node that this enhanced node wraps
<X extends RDFNode>
boolean
canAs(Class<X> t)
          API-level method for polymorphic testing
 boolean equals(Object o)
          An enhanced node is equal to another enhanced node n iff the underlying nodes are equal.
 EnhGraph getGraph()
          Answer the graph containing this node
 int hashCode()
          The hash code of an enhanced node is defined to be the same as the underlying node.
 boolean isAnon()
          An enhanced node is Anon[ymous] iff its underlying node is Blank.
 boolean isLiteral()
          An enhanced node is Literal iff its underlying node is too.
 boolean isResource()
          An enhanced node is a resource if it's node is a URI node or a blank node.
 boolean isURIResource()
          An enhanced node is a URI resource iff its underlying node is too.
 boolean isValid()
          answer true iff this enhanced node is still underpinned in the graph by triples appropriate to its type.
<X extends RDFNode>
X
viewAs(Class<X> t)
          Answer a facet of this node, where that facet is denoted by the given type.
 
Methods inherited from class com.hp.hpl.jena.enhanced.Polymorphic
addView, supports
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EnhNode

public EnhNode(Node n,
               EnhGraph g)
Method Detail

asNode

public Node asNode()
Answer the graph node that this enhanced node wraps

Specified by:
asNode in interface FrontsNode
Returns:
A plain node

getGraph

public EnhGraph getGraph()
Answer the graph containing this node

Returns:
An enhanced graph

isAnon

public final boolean isAnon()
An enhanced node is Anon[ymous] iff its underlying node is Blank.


isLiteral

public final boolean isLiteral()
An enhanced node is Literal iff its underlying node is too.


isURIResource

public final boolean isURIResource()
An enhanced node is a URI resource iff its underlying node is too.


isResource

public final boolean isResource()
An enhanced node is a resource if it's node is a URI node or a blank node.


viewAs

public <X extends RDFNode> X viewAs(Class<X> t)
Answer a facet of this node, where that facet is denoted by the given type.

Parameters:
t - A type denoting the desired facet of the underlying node
Returns:
An enhanced nodet that corresponds to t; this may be this Java object, or a different object.

as

public <T extends RDFNode> T as(Class<T> t)
allow subclasses to implement RDFNode & its subinterface


canAs

public <X extends RDFNode> boolean canAs(Class<X> t)
API-level method for polymorphic testing


hashCode

public final int hashCode()
The hash code of an enhanced node is defined to be the same as the underlying node.

Overrides:
hashCode in class Object
Returns:
The hashcode as an int

equals

public final boolean equals(Object o)
An enhanced node is equal to another enhanced node n iff the underlying nodes are equal. We generalise to allow the other object to be any class implementing asNode, because we allow other implemementations of Resource than EnhNodes, at least in principle. This is deemed to be a complete and correct interpretation of enhanced node equality, which is why this method has been marked final.

Specified by:
equals in class Polymorphic<RDFNode>
Parameters:
o - An object to test for equality with this node
Returns:
True if o is equal to this node.

isValid

public boolean isValid()
Description copied from class: Polymorphic
answer true iff this enhanced node is still underpinned in the graph by triples appropriate to its type.

Specified by:
isValid in class Polymorphic<RDFNode>


Licenced under the Apache License, Version 2.0