public function __construct(array $data)
{
parent::__construct($data);
foreach (array('state') as $key) {
if (!array_key_exists($key, $data)) {
throw new TokenException(sprintf("missing field '%s'", $key));
}
}
$this->setState($data['state']);
}