<?php
namespace App\AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Configuration
*
* @ORM\Table(name="configuration")
* @ORM\Entity(repositoryClass="App\AppBundle\Repository\ConfigurationRepository")
*/
class Configuration implements \JsonSerializable,\Serializable
{
const VISIBILITY_PUBLIC ="public";
const VISIBILITY_PRIVATE="private";
const VISIBILITY_PREDEFINED_ANALYSIS="predefinedAnalysis";
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string",length=255)
*/
private $name;
/**
* Many configurations have one dataset
* @ORM\ManyToOne(targetEntity="App\AppBundle\Entity\Dataset", inversedBy="configurations")
* @ORM\JoinColumn(name="dataset", referencedColumnName="id", nullable=true)
*/
private $dataset;
/**
* Many configurations have one user
* @ORM\ManyToOne(targetEntity="App\AppBundle\Entity\User", inversedBy="configurations")
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", nullable=true)
*/
private $user;
/**
* @var string
* @ORM\Column(name="visibility", type="string", length=255, options={"default":"private"})
*/
private $visibility;
/**
* @var boolean
* @ORM\Column(name="enabled", type="boolean", options={"default":1})
*/
private $enabled;
/**
* @var string
* @ORM\Column(name="configuration", type="text")
*/
private $configuration ;
/**
* Get id
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName($name)
{
$this->name = $name;
}
/**
* @return mixed
*/
public function getDataset()
{
return $this->dataset;
}
/**
* @param mixed $dataset
*/
public function setDataset($dataset)
{
$this->dataset = $dataset;
}
/**
* @return mixed
*/
public function getUser()
{
return $this->user;
}
/**
* @param mixed $user
*/
public function setUser($user)
{
$this->user = $user;
}
public function __toString()
{
return $this->getName();
}
/**
* @return string
*/
public function getVisibility()
{
return $this->visibility;
}
/**
* @param string $visibility
*/
public function setVisibility($visibility)
{
$this->visibility = $visibility;
}
/**
* @return bool
*/
public function isEnabled()
{
return $this->enabled;
}
/**
* @param bool $enabled
*/
public function setEnabled($enabled)
{
$this->enabled = $enabled;
}
/**
* @return string
*/
public function getConfiguration()
{
return $this->configuration;
}
/**
* @param string $configuration
*/
public function setConfiguration($configuration)
{
$this->configuration = $configuration;
}
/** @see \Serializable::serialize() */
public function serialize()
{
return serialize(array(
$this->id,
$this->enabled,
$this->user,
$this->name,
$this->visibility,
$this->dataset,
$this->configuration
));
}
/**
* Constructs the object
* @link http://php.net/manual/en/serializable.unserialize.php
* @param string $serialized <p>
* The string representation of the object.
* </p>
* @return void
* @since 5.1.0
*/
public function unserialize($serialized)
{
list (
$this->id,
$this->enabled,
$this->user,
$this->name,
$this->visibility,
$this->dataset,
$this->configuration
) = unserialize($serialized);
}
/**
* Specify data which should be serialized to JSON
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
* @since 5.4.0
*/
public function jsonSerialize()
{
return json_encode(array(
"id"=>$this->id,
"enabled"=>$this->enabled,
"user"=>$this->user->getId(),
"name"=>$this->name,
"visibility"=>$this->visibility,
"dataset"=>$this->dataset->getId(),
"configuration"=>$this->configuration),
JSON_PRETTY_PRINT);
}
}