code: function HttpViewContext(context) {
      /**
       * Gets or sets the body of the current view
       * @type {String}
       */
      this.body='';
      /**
       * Gets or sets the title of the page if the view will be fully rendered
       * @type {String}
       */
      this.title='';
      /**
       * Gets or sets the view layout page if the view will be fully rendered
       * @type {String}
       */
      this.layout = null;
      /**
       * Gets or sets the view data
       * @type {String}
       */
      this.data = null;
      /**
       * Represents the current HTTP context
       * @type {HttpContext}
       */
      this.context = context;
  
      /**
       * @name HttpViewContext#writer
       * @type HtmlWriter
       * @description Gets an instance of HtmlWriter helper class
       */
      var writer;
      Object.defineProperty(this, 'writer', {
          get:function() {
              if (writer)
                  return writer;
              writer = new HtmlWriter();
              writer.indent = false;
              return writer;
          }, configurable:false, enumerable:false
      });
  
      var self = this;
      Object.defineProperty(this, 'model', {
          get:function() {
              if (self.context.params)
                  if (self.context.params.controller)
                      return self.context.model(self.context.params.controller);
              return null;
          }, configurable:false, enumerable:false
      });
  
      //class extension initiators
      if (typeof this.init === 'function') {
          //call init() method
          this.init();
      }
  }
docs: Encapsulates information that is related to rendering a view.
  @class
  @param {HttpContext} context
  @property {DataModel} model
  @property {HtmlViewHelper} html
  @constructor
  @augments {SequentialEventEmitter}