private function GenerateOverridingMethodTemplate(\ReflectionMethod $EntityMethod)
{
$MethodTemplate = self::OverriddenMethodTemplate;
$Modifiers = \Reflection::getModifierNames($EntityMethod->getModifiers());
$Modifiers[] = 'function';
if ($EntityMethod->returnsReference()) {
$Modifiers[] = '&';
}
$Modifiers = implode(' ', $Modifiers);
$Name = $EntityMethod->getName();
$Parameters = [];
$ParameterVariables = [];
foreach ($EntityMethod->getParameters() as $Parameter) {
$ParameterVariables[] = '$' . $Parameter->getName();
$Parameters[] = $this->GenerateMethodParameter($Parameter);
}
$Parameters = implode(', ', $Parameters);
$ParameterVariables = implode(', ', $ParameterVariables);
$MethodTemplate = str_replace('<Modifiers>', $Modifiers, $MethodTemplate);
$MethodTemplate = str_replace('<Name>', $Name, $MethodTemplate);
$MethodTemplate = str_replace('<Parameters>', $Parameters, $MethodTemplate);
$MethodTemplate = str_replace('<ParameterVariables>', $ParameterVariables, $MethodTemplate);
return $MethodTemplate;
}