private function parseOptions($options)
{
$parseResult = new \stdClass();
$parseResult->invalidOptions = array();
$parseResult->missingOptions = array_flip((array) $this->getRequiredOptions());
//Doctrine parses constructor parameter into 'value' array param, restore it
if (is_array($options) && count($options) == 1 && isset($options['value'])) {
$options = $options['value'];
}
//Parse Option Array
if (is_array($options) && count($options) > 0 && is_string(key($options))) {
$this->parseOptionsArray($options, $parseResult);
return $parseResult;
}
//Parse Single Value
if (null !== $options && !(is_array($options) && count($options) === 0)) {
$this->parseSingleOption($options, $parseResult);
return $parseResult;
}
return $parseResult;
}