/***********************************************/
/*                                             */
/* 数据访问层类库，实现平台中对应类的常用函数  */
/* 2007.01.16                                  */
/*                                             */
/***********************************************/

var DataAccessFacade = Class.create();
DataAccessFacade.prototype = {

	constructor:function(options) {
		this.options = {
			isAsynchronous : false,
			resultType : 1
		}
			
		for(var property in options)
		{
			this.options[property] = options[property];
		}
	},
	
	_ExecuteSql:function(sqlRequest) {

		var ajax_options = {
			postBody : sqlRequest,
			onComplete: this.onComplete,
			resultType: this.options.resultType,
			HttpHeaders :  ['ServerMethhod','DataAccessFacade'],
			isAsync:this.options.isAsynchronous
		};

		return AsyncRequest(ajax_options);
	},
	
	onComplete : function(){},
	
	GetObject : function(sqlRequest)
	{
		sqlRequest.sqlType = 'GetObject';
		return this._ExecuteSql(sqlRequest);
	},
	
	GetObjectCollection : function(sqlRequest)
	{
		sqlRequest.sqlType = 'GetObjectCollection';
		return this._ExecuteSql(sqlRequest);
	},
	
	ExecuteScalar : function(sqlRequest)
	{
		sqlRequest.sqlType = 'ExecuteScalar';
		return this._ExecuteSql(sqlRequest);
	},

	DeleteObject : function(sqlRequest)
	{
		sqlRequest.sqlType = 'DeleteObject';
		return this._ExecuteSql(sqlRequest);
	},

	UpdateObject : function(sqlRequest)
	{
		sqlRequest.sqlType = 'UpdateObject';
		return this._ExecuteSql(sqlRequest);
	},

	InsertObject : function(sqlRequest)
	{
		sqlRequest.sqlType = 'InsertObject';
		return this._ExecuteSql(sqlRequest);
	}
}