Confirmed users, Bureaucrats and Sysops emeriti
2,976
edits
(adding rdfIDataTarget. Do we need all those methods?) |
(composite datasource foo) |
||
| Line 200: | Line 200: | ||
I'm not sure we need all of these. It really depends on which API we want in the rdfIObserver. As everything else doesn't need to be part of the core API. | I'm not sure we need all of these. It really depends on which API we want in the rdfIObserver. As everything else doesn't need to be part of the core API. | ||
== rdfICompositeDataSource == | |||
It's an interesting question whether the composite ds should implement rdfIDataTarget or not. Usually, asserting into a composite ds is a fuzzy thing to do, and if we made accessing the child datasources easier, it may not be worth a whole lot. So I'd favor not to. | |||
The composite data source implements nsIMutableArray, so that clients can insert and remove datasources in any order. This should be exposed to C++, js wants an array scriptable helper (which we have to implement ourselves, the DOM one works off of nsIDOMNodeList). | |||
interface rdfICompositeDataSource : rdfIDataSource | |||
{ | |||
/** | |||
* When enumerating triples if two triples are exactly the same, don't | |||
* enumerate both arcs. | |||
* @note The default value is "false". Setting this to "true" can | |||
* negatively affect performance of queries. | |||
*/ | |||
attribute boolean ignoreDuplicateTriples; | |||
/** | |||
* Allow later datasources to override matching triples in earlier | |||
* datasources: i.e. DS1 has triple subjx->arc->"foo" and DS2 has | |||
* subjx->arc->"bar". If this attribute is false (the default) both triples | |||
* will be reflected. If true, only the "bar" arc will be reflected. | |||
* Setting this to true may affect performance and old-style container | |||
* aggregation. | |||
*/ | |||
attribute boolean allowOverride; | |||
}; | |||
Note: if allowOverride is supposed to replace allowNegativeAssertions, then the comment is wrong. | |||
== rdfISerializer == | == rdfISerializer == | ||