<?php
/**
 * 
 * @package aowp.aspect.joinpoint
 */
/**
 * 
 * @author keiji
 * @package aowp.aspect.joinpoint
 *
 */
class AOWP_ScriptExecutionJoinPoint extends AOWP_JoinPoint {
	
	private $_proceedArgRefs = array();

	public function __construct(AOWP_PHPRootElement $element = null, $fileName = null) {
		parent::__construct($element, $fileName);
	}
	
	public function proceed(array $argumentArray = array()) {
		// Advice body of script execution join point is expanded into target program.
		// So the proceed method is not called directly.
//		if ($this->getExecutedAdvice()->isHavePointcut(new AOWP_RequestPointcut(null))) {
//			AOWP_RequestAroundManageAspect::inRequestProceed();
//			try {
//				$result = call_user_func_array($this->_proceedFunctionName, $this->_proceedArgRefs);
//			} catch (AOWP_RequestAroundEndException $exception) {
//			}
//			AOWP_RequestAroundManageAspect::outRequestProceed();
//		}
//		else {
//			return call_user_func_array($this->_proceedFunctionName, $this->_proceedArgRefs);
//		}
	}
	
	public function addProceedArg(&$proceedArg) {
		$this->_proceedArgRefs[] = &$proceedArg;
	}
}
?>