package org.neo4j.rdf.model;
/**
* A blank node (aka bnode, aka anonymous node). A blank node has an identifier
* to be able to compare it to other blank nodes internally.
*/
public class BlankNode implements Resource
{
private final String internalId;
/**
* Create a blank node with an internal identifier (which may be null).
* @param internalId the internal identifier, or null
*/
public BlankNode( String internalId )
{
this.internalId = internalId;
}
/**
* Returns the internal identifier of this blank node, which can be null.
* @return the internal identifier of this blank node or null
*/
public String getInternalIdOrNull()
{
return this.internalId;
}
/**
* Returns <code>false</code> (a bnode is not a wildcard).
* @return <code>false</code>
*/
public boolean isWildcard()
{
return false;
}
@Override
public int hashCode()
{
return getInternalIdOrNull() == null
? getInternalIdOrNull().hashCode()
: super.hashCode();
}
@Override
public boolean equals( Object o )
{
if ( getInternalIdOrNull() == null )
{
return super.equals( o );
}
else if ( o instanceof BlankNode)
{
return getInternalIdOrNull().equals( ( ( BlankNode ) o ).
getInternalIdOrNull() );
}
return false;
}
@Override
public String toString()
{
return "BlankNode[" + internalId + "]";
}
}