public static function reportBlueprintWithQuery($queryStr, $row_id_key = "", $name = "Untitled")
 {
     // Instantiate an empty ReportBlueprint
     $bp = new ReportBlueprint("reportBlueprintWithQuery");
     $bp->setName($name);
     $bp->setQuery($queryStr);
     $bp->setRowIdKey($row_id_key);
     return $bp;
 }
 private static function parseReportBlueprint($xml)
 {
     $blueprint = new ReportBlueprint((string) $xml['key']);
     $blueprint->setName((string) $xml['name']);
     $blueprint->setRowIdKey((string) $xml['rowIdKey']);
     $blueprint->setQuery((string) $xml->query);
     // list fields (double as report fields)
     foreach ($xml->field as $f) {
         $field = new ListField((string) $f['key']);
         $field->setDisplayName((string) $f->displayName);
         $field->setFormat((string) $f->format);
         $field->setHref((string) $f->href);
         $blueprint->add($field);
     }
     return $blueprint;
 }