public function render()
    {
        $methodDocumentation = $this->buildMethodDocumentation($this->fullOriginalClassName, $this->methodName);
        $methodParametersCode = ($this->methodParametersCode !== '' ? $this->methodParametersCode : $this->buildMethodParametersCode($this->fullOriginalClassName, $this->methodName));
        $callParentMethodCode = $this->buildCallParentMethodCode($this->fullOriginalClassName, $this->methodName);

        $finalKeyword = $this->reflectionService->isMethodFinal($this->fullOriginalClassName, $this->methodName) ? 'final ' : '';
        $staticKeyword = $this->reflectionService->isMethodStatic($this->fullOriginalClassName, $this->methodName) ? 'static ' : '';

        $visibility = ($this->visibility === null ? $this->getMethodVisibilityString() : $this->visibility);

        $returnType = $this->reflectionService->getMethodDeclaredReturnType($this->fullOriginalClassName, $this->methodName);
        $returnTypeIsVoid = $returnType === 'void';
        $returnTypeDeclaration = ($returnType !== null ? ' : ' . $returnType : '');


        $code = '';
        if ($this->addedPreParentCallCode !== '' || $this->addedPostParentCallCode !== '' || $this->methodBody !== '') {
            $code = "\n" .
                $methodDocumentation .
                '    ' . $finalKeyword . $staticKeyword . $visibility . ' function ' . $this->methodName . '(' . $methodParametersCode . ")$returnTypeDeclaration\n    {\n";
            if ($this->methodBody !== '') {
                $code .= "\n" . $this->methodBody . "\n";
            } else {
                $code .= $this->addedPreParentCallCode;
                if ($this->addedPostParentCallCode !== '') {
                    if ($returnTypeIsVoid) {
                        if ($callParentMethodCode !== '') {
                            $code .= '            ' . $callParentMethodCode;
                        }
                    } else {
                        $code .= '            $result = ' . ($callParentMethodCode === '' ? "NULL;\n" : $callParentMethodCode);
                    }
                    $code .= $this->addedPostParentCallCode;
                    if (!$returnTypeIsVoid) {
                        $code .= "        return \$result;\n";
                    }
                } else {
                    if (!$returnTypeIsVoid && $callParentMethodCode !== '') {
                        $code .= '        return ' . $callParentMethodCode . ";\n";
                    }
                }
            }
            $code .= "    }\n";
        }
        return $code;
    }
public function render()
    {
        $methodDocumentation = $this->buildMethodDocumentation($this->fullOriginalClassName, $this->methodName);
        $methodParametersCode = ($this->methodParametersCode !== '' ? $this->methodParametersCode : $this->buildMethodParametersCode($this->fullOriginalClassName, $this->methodName));
        $callParentMethodCode = $this->buildCallParentMethodCode($this->fullOriginalClassName, $this->methodName);

        $finalKeyword = $this->reflectionService->isMethodFinal($this->fullOriginalClassName, $this->methodName) ? 'final ' : '';
        $staticKeyword = $this->reflectionService->isMethodStatic($this->fullOriginalClassName, $this->methodName) ? 'static ' : '';

        $visibility = ($this->visibility === null ? $this->getMethodVisibilityString() : $this->visibility);

        $returnType = $this->reflectionService->getMethodDeclaredReturnType($this->fullOriginalClassName, $this->methodName);
        $returnTypeIsVoid = $returnType === 'void';
        $returnTypeDeclaration = ($returnType !== null ? ' : ' . $returnType : '');


        $code = '';
        if ($this->addedPreParentCallCode !== '' || $this->addedPostParentCallCode !== '' || $this->methodBody !== '') {
            $code = "\n" .
                $methodDocumentation .
                '    ' . $finalKeyword . $staticKeyword . $visibility . ' function ' . $this->methodName . '(' . $methodParametersCode . ")$returnTypeDeclaration\n    {\n";
            if ($this->methodBody !== '') {
                $code .= "\n" . $this->methodBody . "\n";
            } else {
                $code .= $this->addedPreParentCallCode;
                if ($this->addedPostParentCallCode !== '') {
                    if ($returnTypeIsVoid) {
                        if ($callParentMethodCode !== '') {
                            $code .= '            ' . $callParentMethodCode;
                        }
                    } else {
                        $code .= '            $result = ' . ($callParentMethodCode === '' ? "NULL;\n" : $callParentMethodCode);
                    }
                    $code .= $this->addedPostParentCallCode;
                    if (!$returnTypeIsVoid) {
                        $code .= "        return \$result;\n";
                    }
                } else {
                    if (!$returnTypeIsVoid && $callParentMethodCode !== '') {
                        $code .= '        return ' . $callParentMethodCode . ";\n";
                    }
                }
            }
            $code .= "    }\n";
        }
        return $code;
    }
public function render ( ) { $ methodDocumentation = $ this -> buildMethodDocumentation ( $ this -> fullOriginalClassName , $ this -> methodName ) ; $ methodParametersCode = ( $ this -> methodParametersCode !== '' ? $ this -> methodParametersCode : $ this -> buildMethodParametersCode ( $ this -> fullOriginalClassName , $ this -> methodName ) ) ; $ callParentMethodCode = $ this -> buildCallParentMethodCode ( $ this -> fullOriginalClassName , $ this -> methodName ) ; $ finalKeyword = $ this -> reflectionService -> isMethodFinal ( $ this -> fullOriginalClassName , $ this -> methodName ) ? 'final ' : '' ; $ staticKeyword = $ this -> reflectionService -> isMethodStatic ( $ this -> fullOriginalClassName , $ this -> methodName ) ? 'static ' : '' ; $ visibility = ( $ this -> visibility === null ? $ this -> getMethodVisibilityString ( ) : $ this -> visibility ) ; $ returnType = $ this -> reflectionService -> getMethodDeclaredReturnType ( $ this -> fullOriginalClassName , $ this -> methodName ) ; $ returnTypeIsVoid = $ returnType === 'void' ; $ returnTypeDeclaration = ( $ returnType !== null ? ' : ' . $ returnType : '' ) ; $ code = '' ; if ( $ this -> addedPreParentCallCode !== '' || $ this -> addedPostParentCallCode !== '' || $ this -> methodBody !== '' ) { $ code = "\n" . $ methodDocumentation . '    ' . $ finalKeyword . $ staticKeyword . $ visibility . ' function ' . $ this -> methodName . '(' . $ methodParametersCode . ")$returnTypeDeclaration\n    {\n" ; if ( $ this -> methodBody !== '' ) { $ code .= "\n" . $ this -> methodBody . "\n" ; } else { $ code .= $ this -> addedPreParentCallCode ; if ( $ this -> addedPostParentCallCode !== '' ) { if ( $ returnTypeIsVoid ) { if ( $ callParentMethodCode !== '' ) { $ code .= '            ' . $ callParentMethodCode ; } } else { $ code .= '            $result = ' . ( $ callParentMethodCode === '' ? "NULL;\n" : $ callParentMethodCode ) ; } $ code .= $ this -> addedPostParentCallCode ; if ( ! $ returnTypeIsVoid ) { $ code .= "        return \$result;\n" ; } } else { if ( ! $ returnTypeIsVoid && $ callParentMethodCode !== '' ) { $ code .= '        return ' . $ callParentMethodCode . ";\n" ; } } } $ code .= "    }\n" ; } return $ code ; }
Renders the PHP code for this Proxy Method

@return string PHP code
Renders the PHP code for this Proxy Method