[scriptable, uuid(0f78da58-8321-11d2-8eac-00805f29f370)]
interface nsIRDFDataSource : nsISupports

Attributes

 The "URI" of the data source. This used by the RDF service's
 |GetDataSource()| method to cache datasources.
readonly attribute string URI

Methods

 Add an observer to this data source. If the datasource
 supports observers, the datasource source should hold a strong
 reference to the observer.
void AddObserver(in nsIRDFObserver aObserver)
 Get a cursor to iterate over all the arcs that point into a node.

 @return NS_OK unless a catastrophic error occurs. If the method
 returns NS_OK, you may assume that labels points to a valid (but
 possible empty) nsISimpleEnumerator object.
nsISimpleEnumerator ArcLabelsIn(in nsIRDFNode aNode)
 Get a cursor to iterate over all the arcs that originate in
 a resource.

 @return NS_OK unless a catastrophic error occurs. If the method
 returns NS_OK, you may assume that labels points to a valid (but
 possible empty) nsISimpleEnumerator object.
nsISimpleEnumerator ArcLabelsOut(in nsIRDFResource aSource)
 Add an assertion to the graph.
void Assert(in nsIRDFResource aSource, in nsIRDFResource aProperty, in nsIRDFNode aTarget, in boolean aTruthValue)
 Change an assertion from

   [aSource]--[aProperty]-->[aOldTarget]

 to
 
   [aSource]--[aProperty]-->[aNewTarget]
void Change(in nsIRDFResource aSource, in nsIRDFResource aProperty, in nsIRDFNode aOldTarget, in nsIRDFNode aNewTarget)
 Perform the specified command on set of sources.
void DoCommand(in nsISupportsArray aSources, in nsIRDFResource aCommand, in nsISupportsArray aArguments)
 Returns the set of all commands defined for a given source.
nsISimpleEnumerator GetAllCmds(in nsIRDFResource aSource)
 Retrieve all of the resources that the data source currently
 refers to.
nsISimpleEnumerator GetAllResources()
 Find an RDF resource that points to a given node over the
 specified arc & truth value

 @return NS_RDF_NO_VALUE if there is no source that leads
 to the target with the specified property.
nsIRDFResource GetSource(in nsIRDFResource aProperty, in nsIRDFNode aTarget, in boolean aTruthValue)
 Find all RDF resources that point to a given node over the
 specified arc & truth value

 @return NS_OK unless a catastrophic error occurs. If the
 method returns NS_OK, you may assume that nsISimpleEnumerator points
 to a valid (but possibly empty) cursor.
nsISimpleEnumerator GetSources(in nsIRDFResource aProperty, in nsIRDFNode aTarget, in boolean aTruthValue)
 Find a child of that is related to the source by the given arc
 arc and truth value

 @return NS_RDF_NO_VALUE if there is no target accessible from the
 source via the specified property.
nsIRDFNode GetTarget(in nsIRDFResource aSource, in nsIRDFResource aProperty, in boolean aTruthValue)
 Find all children of that are related to the source by the given arc
 arc and truth value.

 @return NS_OK unless a catastrophic error occurs. If the
 method returns NS_OK, you may assume that nsISimpleEnumerator points
 to a valid (but possibly empty) cursor.
nsISimpleEnumerator GetTargets(in nsIRDFResource aSource, in nsIRDFResource aProperty, in boolean aTruthValue)
 Query whether an assertion exists in this graph.
boolean HasAssertion(in nsIRDFResource aSource, in nsIRDFResource aProperty, in nsIRDFNode aTarget, in boolean aTruthValue)
 Returns whether a given command is enabled for a set of sources. 
boolean IsCommandEnabled(in nsISupportsArray aSources, in nsIRDFResource aCommand, in nsISupportsArray aArguments)
 'Move' an assertion from

   [aOldSource]--[aProperty]-->[aTarget]

 to
 
   [aNewSource]--[aProperty]-->[aTarget]
void Move(in nsIRDFResource aOldSource, in nsIRDFResource aNewSource, in nsIRDFResource aProperty, in nsIRDFNode aTarget)
 Remove an observer from this data source.
void RemoveObserver(in nsIRDFObserver aObserver)
 Remove an assertion from the graph.
void Unassert(in nsIRDFResource aSource, in nsIRDFResource aProperty, in nsIRDFNode aTarget)
 Notify observers that the datasource is about to send several
 notifications at once.
 This must be followed by calling endUpdateBatch(), otherwise
 viewers will get out of sync.
void beginUpdateBatch()
 Notify observers that the datasource has completed issuing
 a notification group.
void endUpdateBatch()
 Returns true if the specified node is pointed to by the specified arc.
 Equivalent to enumerating ArcLabelsIn and comparing for the specified arc.
boolean hasArcIn(in nsIRDFNode aNode, in nsIRDFResource aArc)
 Returns true if the specified node has the specified outward arc.
 Equivalent to enumerating ArcLabelsOut and comparing for the specified arc.
boolean hasArcOut(in nsIRDFResource aSource, in nsIRDFResource aArc)