/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.jena.rdfxml.xmlinput;
/**
* A URI or blank node reported to a {@link StatementHandler}.
* Note: equality (<code>.equals</code>) rather than identity
* (<code>==</code>) must be used to compare <code>AResource</code>s.
*/
public interface AResource {
/** A string distinguishing this anonymous resource, from other anonymous resources.
* Undefined if {@link #isAnonymous} returns false.
* @return An identifier with file scope for this anonymous resource..
*/
public String getAnonymousID();
/** The URI reference for this resource, if any.
* Not defined if {@link #isAnonymous} returns true.
* @return The URI reference of this resource.
*/
public String getURI();
/** The user data allows the RDF application to store one Object with each blank node during parsing.
* This may help with garbage collect strategies when parsing huge files.
* No references to the user data are maintained after a blank node goes out of
* scope.
* @return A user data object previously stored with {@link #setUserData}; or null if none.
*/
public Object getUserData();
/**
* True, if this is an anonymous resource with an explicit rdf:nodeID.
* @return true if this resource has a nodeID
*/
public boolean hasNodeID();
/** True if this resource does not have an associated URI.
* @return True if this resource is anonymous.
*/
public boolean isAnonymous();
/** The user data allows the RDF application to store one Object with each blank node during parsing.
* This may help with garbage collect strategies when parsing huge files.
* No references to the user data are maintained after a blank node goes out of
* scope.
* <p>
* See note about large files in class documentation for {@link ARP}.
* @param d A user data object which may be retrieved later with {@link #getUserData}.
*/
public void setUserData(Object d);
}