﻿/// <reference name="MicrosoftAjax.js"/>
/* Property Helper
 * --------------------------------------------------
 * Usage
 * --------------------------------------------------
 * How To use
 * --------------------------------------------------
 * Type.registerNamespace("Samples");
 * 
 * Samples.Customer = function() {
 * }
 * Samples.Customer.createProperty("fullName");
 * Samples.Customer.registerClass("Samples.Customer");
 * -------------------------------------------------- */

Type.prototype._createGetter = function(fieldName) {
    return function() {
        return this[fieldName];
    }
}

Type.prototype._createSetter = function(fieldName) {
    return function(value) {
        this[fieldName] = value;
    }
}

Type.prototype.createProperty = function(propName) {
    var fieldName = '_' + propName;

    var getter = this._createGetter(fieldName);
    var setter = this._createSetter(fieldName);

    this.prototype['get_' + propName] = getter;
    this.prototype['set_' + propName] = setter;
}