/** * setElement * @param int $i * @param Erfurt_Sparql_Query2_IF_TriplesSameSubject $element * @return Erfurt_Sparql_Query2_ConstructTemplate $this */ public function setElement($i, $element) { if (!is_int($i)) { throw new RuntimeException('Argument 1 passed to Erfurt_Sparql_Query2_GroupOrUnionGraphPattern::setElement must be an instance of integer, instance of ' . typeHelper($i) . ' given'); } if (!$element instanceof Erfurt_Sparql_Query2_IF_TriplesSameSubject) { throw new RuntimeException('Argument 1 passed to Erfurt_Sparql_Query2_GroupOrUnionGraphPattern::addElement must be an instance of Erfurt_Sparql_Query2_IF_TriplesSameSubject'); } $this->elements[$i] = $element; $element->addParent($this); return $this; //for chaining }
/** * order by a property (must be set as shown property before) * * @param type $uri the property to order by * @param boolean $asc true if ascending, false if descending */ public function setOrderProperty($uri, $asc = true) { $this->setOffset(0); if ($this->_sortTriple == null) { $orderVar = new Erfurt_Sparql_Query2_Var('order'); $this->_sortTriple = new Erfurt_Sparql_Query2_OptionalGraphPattern(array(new Erfurt_Sparql_Query2_Triple($this->getResourceVar(), new Erfurt_Sparql_Query2_IriRef($uri), $orderVar))); $this->_resourceQuery->getWhere()->addElement($this->_sortTriple); $this->_resourceQuery->getOrder()->add($orderVar, $asc ? Erfurt_Sparql_Query2_OrderClause::ASC : Erfurt_Sparql_Query2_OrderClause::DESC); } else { $this->_sortTriple->getElement(0)->setP(new Erfurt_Sparql_Query2_IriRef($uri)); if ($asc) { $this->_resourceQuery->getOrder()->setAsc(0); } else { $this->_resourceQuery->getOrder()->setDesc(0); } } $this->invalidate(); }