/** @brief Constructs new cluster helper instance. * * @param $cluster [in] One cluster reply. * @param $meta [in] Reply set meta data. * @param $facet_helper [in] Facet helper (used to retrieve value label). * @param $query [in] AfsQuery object previously initialized. It is used to * generate new query to filter on this cluster reply. * @param $config [in] Helper configuration. */ public function __construct($cluster, AfsMetaHelper $meta, $facet_helper, AfsQuery $query, AfsHelperConfiguration $config) { $formatter = AfsFacetHelperRetriever::get_formatter($meta->get_cluster_id(), $query); $this->id = $formatter->format($cluster->id); $this->initialize_label($facet_helper); $this->total_replies = $cluster->totalItems; $factory = new AfsReplyHelperFactory($config->get_reply_text_visitor()); $this->replies = $factory->create_replies($meta->get_feed(), $cluster); $this->query = $query->auto_set_from()->unset_cluster()->add_filter($meta->get_cluster_id(), $this->id); $this->config = $config; }
/** @brief Construct helper with pager and current query. * * @param $pager [in] pager retrieved from reply. * @param $meta [in] meta data of the replyset. * @param $query [in] current @a AfsQuery which will be used to generate * appropriate queries (see bellow @a get_pages, @a get_previous and * @a get_next). * @param $config [in] helper ocnfiguration object. * * @exception InvalidArgumentException @a pager is invalid. */ public function __construct($pager, AfsMetaHelper $meta, AfsQuery $query, AfsHelperConfiguration $config) { if (!property_exists($pager, AfsPagerHelper::CURRENT_NAME)) { throw new InvalidArgumentException('Pager is of the wrong type.'); } $this->pager = $pager; $this->query = $query; $this->config = $config; $this->feed_name = $meta->get_feed(); $this->initialize_last_page($meta); }
public function testValuesWithClusterAsArray() { $input = json_decode('{ "uri": "Catalog", "totalItems": 61, "totalItemsIsExact": true, "pageItems": 20, "firstPageItem": 1, "lastPageItem": 20, "durationMs": 6, "cluster": "marketing", "firstPaFId": 1, "lastPaFId": 1, "producer": "SEARCH", "totalItemsInClusters": 2, "nbClusters": 2 }'); $meta = new AfsMetaHelper($input); $meta->set_cluster_label('My label'); $meta = $meta->format(); $this->assertTrue(array_key_exists('feed', $meta)); $this->assertEquals($meta['feed'], 'Catalog'); $this->assertTrue(array_key_exists('total_replies', $meta)); $this->assertEquals($meta['total_replies'], 61); $this->assertTrue(array_key_exists('replies_per_page', $meta)); $this->assertEquals($meta['replies_per_page'], 20); $this->assertTrue(array_key_exists('duration', $meta)); $this->assertEquals($meta['duration'], 6); $this->assertTrue(array_key_exists('producer', $meta)); $this->assertEquals($meta['producer'], 'SEARCH'); $this->assertTrue(array_key_exists('cluster', $meta)); $this->assertEquals($meta['cluster'], 'marketing'); $this->assertTrue(array_key_exists('cluster_label', $meta)); $this->assertEquals($meta['cluster_label'], 'My label'); }