package org.seasar.tapestry.ognl;

import java.util.Map;

import ognl.ObjectPropertyAccessor;
import ognl.OgnlException;

import org.seasar.tapestry.ognl.binder.impl.GlobalProxy;

/**
 * @author higa
 *
 */
public class GlobalProxyPropertyAccessor extends ObjectPropertyAccessor {
	/**
	 * ONGLがS2に登録されている名前のオブジェクトを呼んだらS2から返す
	 * でなければデフォルトの動作を行う
	 */
	public Object getProperty(Map cx, Object target, Object name)
		throws OgnlException {

		GlobalProxy proxy = (GlobalProxy)target;
		Object ret = proxy.getBinging(name.toString());
		if( ret != null ) {
			return ret ;
		}else {
			return super.getProperty(cx, proxy.get(), name);
		}
	}

}
