
var VnObject = require ('./object');
var Type = require ('./type');
var ParamIface = require ('./param-iface');
var LotIface = require ('./lot-iface');

/**
 * A simple implementation of @ParamIface.
 */
module.exports = new Class
({
	Extends: VnObject
	,Implements: ParamIface
	,Tag: 'vn-param'
	,Properties:
	{
		value:
		{
			type: null
			,set: function (x)
			{
				this._setValue (x);
			}
			,get: function ()
			{
				return this._value;
			}
		},
		type:
		{
			type: Type
			,set: function (x)
			{
				this._setType (x);
			}
			,get: function ()
			{
				return this._type;
			}
		},
		param:
		{
			type: ParamIface
			,set: function (x)
			{
				this._setParam (x);
			}
			,get: function ()
			{
				return this._param;
			}
		},
		lot:
		{
			type: LotIface
			,set: function (x)
			{
				this._setLot (x);
			}
			,get: function ()
			{
				return this._lot;
			}
		},
		name:
		{
			type: String
			,set: function (x)
			{
				this._setName (x);
			}
			,get: function ()
			{
				return this._name;
			}
		},
		oneWay:
		{
			type: Boolean
			,set: function (x)
			{
				this._oneWay = x;
			}
			,get: function ()
			{
				return this._oneWay;
			}
		}
	}
});
