/** * Parse analysis types and items. * * @param Result $result * @param array $typeData * * @return Types[] */ protected function parseTypes($result, $typeData) { $query = $result->getQuery(); $results = array(); foreach ($typeData as $fieldKey => $fieldData) { $types = array(); foreach ($fieldData as $typeKey => $typeData) { if ($query->getResponseWriter() == $query::WT_JSON) { // fix for extra level for key fields if (count($typeData) == 1) { $typeData = current($typeData); } $typeData = $this->convertToKeyValueArray($typeData); } $classes = array(); foreach ($typeData as $class => $analysis) { if (is_string($analysis)) { $item = new Item(array('text' => $analysis, 'start' => null, 'end' => null, 'position' => null, 'positionHistory' => null, 'type' => null)); $classes[] = new ResultList($class, array($item)); } else { $items = array(); foreach ($analysis as $itemData) { $items[] = new Item($itemData); } $classes[] = new ResultList($class, $items); } } $types[] = new ResultList($typeKey, $classes); } $results[] = new Types($fieldKey, $types); } return $results; }
public function testGetQuery() { $this->assertEquals($this->query, $this->result->getQuery()); }