Newer
Older
<?php
/**
* Piwik - free/libre analytics platform
*
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*
*/
namespace Piwik\Plugin;
/**
* @api
Thomas Steur
a validé
* @since 2.4.0
*/
class Segment
{
const TYPE_DIMENSION = 'dimension';
const TYPE_METRIC = 'metric';
private $type;
private $category;
private $name;
private $segment;
private $sqlSegment;
private $sqlFilter;
private $sqlFilterValue;
private $acceptValues;
Thomas Steur
a validé
private $permission;
public function __construct()
{
$this->init();
}
protected function init()
{
}
/**
Thomas Steur
a validé
* @param string $acceptValues
Thomas Steur
a validé
public function setAcceptedValues($acceptValues)
{
$this->acceptValues = $acceptValues;
}
/**
Thomas Steur
a validé
* @param string $category
*/
public function setCategory($category)
{
$this->category = $category;
}
/**
Thomas Steur
a validé
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
Thomas Steur
a validé
* @param string $segment
*/
public function setSegment($segment)
{
$this->segment = $segment;
}
/**
Thomas Steur
a validé
* @param string|\Closure $sqlFilter
*/
public function setSqlFilter($sqlFilter)
{
$this->sqlFilter = $sqlFilter;
}
/**
Thomas Steur
a validé
* @param string|array $sqlFilterValue
*/
public function setSqlFilterValue($sqlFilterValue)
{
$this->sqlFilterValue = $sqlFilterValue;
}
/**
Thomas Steur
a validé
* @param string $sqlSegment
*/
public function setSqlSegment($sqlSegment)
{
$this->sqlSegment = $sqlSegment;
}
/**
* @return string
*/
public function getSqlSegment()
{
return $this->sqlSegment;
}
/**
Thomas Steur
a validé
* @param string $type See constansts TYPE_*
*/
public function setType($type)
{
$this->type = $type;
}
/**
* @return string
*/
public function getType()
{
return $this->type;
}
Thomas Steur
a validé
/**
* @param bool $permission
*/
public function setPermission($permission)
{
$this->permission = $permission;
}
public function toArray()
{
$segment = array(
'type' => $this->type,
'category' => $this->category,
'name' => $this->name,
'segment' => $this->segment,
'sqlSegment' => $this->sqlSegment,
);
if (!empty($this->sqlFilter)) {
$segment['sqlFilter'] = $this->sqlFilter;
}
if (!empty($this->sqlFilterValue)) {
$segment['sqlFilterValue'] = $this->sqlFilterValue;
}
if (!empty($this->acceptValues)) {
$segment['acceptedValues'] = $this->acceptValues;
}
Thomas Steur
a validé
if (isset($this->permission)) {
$segment['permission'] = $this->permission;
}
return $segment;
}
}