- if (empty($definition['context'][$name])) {
- throw new ContextException(sprintf("The %s context is not a valid context.", $name));
+ if ($definition instanceof ContextAwarePluginDefinitionInterface) {
+ if ($definition->hasContextDefinition($name)) {
+ return $definition->getContextDefinition($name);
+ }
+ }
+ elseif (!empty($definition['context'][$name])) {
+ return $definition['context'][$name];