private async void fetch_metadata_values () {
int i;
- var mandatory = new ArrayList<TrackerQueryTriplet> ();
+ var mandatory = new TrackerQueryTriplets ();
// All variables used in the query
var num_keys = this.key_chain.length - 1;
* Represents Tracker SPARQL query
*/
public class Rygel.TrackerQuery {
- public ArrayList<TrackerQueryTriplet> mandatory;
- public ArrayList<TrackerQueryTriplet> optional;
+ public TrackerQueryTriplets mandatory;
+ public TrackerQueryTriplets optional;
public ArrayList<string> variables;
public ArrayList<string> filters;
public int offset;
public int max_count;
- public TrackerQuery (ArrayList<string> variables,
- ArrayList<TrackerQueryTriplet> mandatory,
- ArrayList<TrackerQueryTriplet>? optional,
- ArrayList<string>? filters,
- string? order_by = null,
- int offset = 0,
- int max_count = -1) {
+ public TrackerQuery (ArrayList<string> variables,
+ TrackerQueryTriplets mandatory,
+ TrackerQueryTriplets? optional,
+ ArrayList<string>? filters,
+ string? order_by = null,
+ int offset = 0,
+ int max_count = -1) {
this.variables = variables;
this.mandatory = mandatory;
if (optional != null) {
this.optional = optional;
} else {
- this.optional = new ArrayList<TrackerQueryTriplet> ();
+ this.optional = new TrackerQueryTriplets ();
}
if (filters != null) {
return query;
}
- private string serialize_triplets (Gee.List<TrackerQueryTriplet> triplets) {
+ private string serialize_triplets (TrackerQueryTriplets triplets) {
string str = "";
for (int i = 0; i < triplets.size; i++) {
return str;
}
}
+
+/**
+ * Represents a list of SPARQL Triplet
+ */
+public class Rygel.TrackerQueryTriplets : ArrayList<TrackerQueryTriplet> {}
private TrackerResourcesIface resources;
- public TrackerSearchContainer (string id,
- MediaContainer parent,
- string title,
- string category,
- ArrayList<TrackerQueryTriplet> mandatory =
- new ArrayList<TrackerQueryTriplet> (),
- ArrayList<string>? filters =
- null) {
+ public TrackerSearchContainer (string id,
+ MediaContainer parent,
+ string title,
+ string category,
+ TrackerQueryTriplets? mandatory = null,
+ ArrayList<string>? filters = null) {
base (id, parent, title, 0);
this.category = category;
var variables = new ArrayList<string> ();
variables.add (ITEM_VARIABLE);
- mandatory.add (new TrackerQueryTriplet (ITEM_VARIABLE,
- "a",
- category,
- false));
+ var our_mandatory = new TrackerQueryTriplets ();
+ if (mandatory != null) {
+ our_mandatory.add_all (mandatory);
+ }
+
+ our_mandatory.add (new TrackerQueryTriplet (ITEM_VARIABLE,
+ "a",
+ category,
+ false));
- var optional = new ArrayList<TrackerQueryTriplet> ();
+ var optional = new TrackerQueryTriplets ();
foreach (var key in TrackerItem.get_metadata_keys ()) {
var variable = "?" + key.replace (":", "_");
}
this.query = new TrackerQuery (variables,
- mandatory,
+ our_mandatory,
optional,
filters,
ITEM_VARIABLE);
query.variables = new ArrayList<string> ();
query.variables.add ("COUNT(" + ITEM_VARIABLE + ") AS x");
- query.optional = new ArrayList<TrackerQueryTriplet> ();
+ query.optional = new TrackerQueryTriplets ();
var query_str = query.to_string ();