protected function getNode($map, $node, $required = true, $default = null)
{
if (!is_array($map)) {
throw new MappingViolationException("Metadata parse error: '" . $map . "' is not an array but should be");
}
if (!array_key_exists($node, $map)) {
if ($required) {
throw new MappingViolationException("Metadata parse error: " . $node . " is required but missing");
}
return $default;
}
return $map[$node];
}