function() {
    this.rcMap = [];
    this.merges = [];

    this.isIgnore = function(ir, ic) {
      var _ignore = RowColMap.prototype.TYPE.IGNORE;
      return this.getRowColMapProp(ir, ic, _ignore);
    };
    this.isEmpty = function(ir, ic) {
      var _empty = RowColMap.prototype.TYPE.EMPTY;
      return this.getRowColMapProp(ir, ic, _empty);
    };
    this.isRowSpan = function(ir) {
      var _rowspan = RowColMap.prototype.TYPE.ROWSPAN;
      return this.getRowColMapProp(ir, undefined, _rowspan);
    };
    this.isColSpan = function(ir) {
      var _colspan = RowColMap.prototype.TYPE.COLSPAN;
      return this.getRowColMapProp(ir, undefined, _colspan);
    };
    this.isSpan = function(ir) {
      return this.isRowSpan(ir) || this.isColSpan(ir);
    };
    this.isMerge = function(ir) {
      return this.merges.length > 0;
    };
    this.addMerge = function(ir, mergeObj) {
      var _merge = RowColMap.prototype.TYPE.MERGE;
      this.merges.push(mergeObj);
      this.setRowColMapProp(ir, undefined, _merge, this.merges);
    };
    this.getRowColMapProp = function(ir, ic, key) {
      if (this.rcMap[ir]) {
        if (typeof key === "undefined") {
          return this.rcMap[ir][ic];
        } else if (typeof ic === "undefined") {
          return this.rcMap[ir][key];
        } else if (this.rcMap[ir][ic]) {
          return this.rcMap[ir][ic][key];
        }
      }
      return undefined;
    };
    this.setRowColMapProp = function(ir, ic, key, value) {
      this.rcMap[ir] = this.rcMap[ir] || [];
      if (typeof key === "undefined") {
        return (this.rcMap[ir][ic] = value);
      } else if (typeof ic === "undefined") {
        return (this.rcMap[ir][key] = value);
      } else {
        this.rcMap[ir][ic] = this.rcMap[ir][ic] || [];
        return (this.rcMap[ir][ic][key] = value);
      }
    };
    this.generateTotal = function(ir, ic) {
      var VALUE = RowColMap.prototype.TYPE.VALUE;
      var _total = 0;

      if (this.isRowSpan(ir) && this.isColSpan(ir)) {
        _total = this.getRowColMapProp(ir, ic, VALUE) || 0;
      } else if (this.getRowColMapProp(ir, ic, VALUE)) {
        _total = this.getRowColMapProp(ir, ic, VALUE);
      }
      return _total;
    };
    this.convertSpanToArray = function(ir, ic, key, _return, colDel) {
      if (this.rcMap[ir] && this.isSpan(ir)) {
        var total = this.generateTotal(ir, ic);

        if (_isEnhanced(key)) {
          return new Array(total).concat(_return);
        } else {
          return new Array(total).concat(_return).join(colDel);
        }
      }
      return _return;
    };
    this.handleRowColMapProp = function(type, ir, ic, key, _return, colDel) {
      switch (type) {
        case RowColMap.prototype.TYPE.IGNORE:
          return;
        case RowColMap.prototype.TYPE.EMPTY:
          return " ";
        case RowColMap.prototype.TYPE.DEFAULT:
        default:
          return this.convertSpanToArray(ir, ic, key, _return, colDel);
      }
    };
  }
function() {
    this.rcMap = [];
    this.merges = [];

    this.isIgnore = function(ir, ic) {
      var _ignore = RowColMap.prototype.TYPE.IGNORE;
      return this.getRowColMapProp(ir, ic, _ignore);
    };
    this.isEmpty = function(ir, ic) {
      var _empty = RowColMap.prototype.TYPE.EMPTY;
      return this.getRowColMapProp(ir, ic, _empty);
    };
    this.isRowSpan = function(ir) {
      var _rowspan = RowColMap.prototype.TYPE.ROWSPAN;
      return this.getRowColMapProp(ir, undefined, _rowspan);
    };
    this.isColSpan = function(ir) {
      var _colspan = RowColMap.prototype.TYPE.COLSPAN;
      return this.getRowColMapProp(ir, undefined, _colspan);
    };
    this.isSpan = function(ir) {
      return this.isRowSpan(ir) || this.isColSpan(ir);
    };
    this.isMerge = function(ir) {
      return this.merges.length > 0;
    };
    this.addMerge = function(ir, mergeObj) {
      var _merge = RowColMap.prototype.TYPE.MERGE;
      this.merges.push(mergeObj);
      this.setRowColMapProp(ir, undefined, _merge, this.merges);
    };
    this.getRowColMapProp = function(ir, ic, key) {
      if (this.rcMap[ir]) {
        if (typeof key === "undefined") {
          return this.rcMap[ir][ic];
        } else if (typeof ic === "undefined") {
          return this.rcMap[ir][key];
        } else if (this.rcMap[ir][ic]) {
          return this.rcMap[ir][ic][key];
        }
      }
      return undefined;
    };
    this.setRowColMapProp = function(ir, ic, key, value) {
      this.rcMap[ir] = this.rcMap[ir] || [];
      if (typeof key === "undefined") {
        return (this.rcMap[ir][ic] = value);
      } else if (typeof ic === "undefined") {
        return (this.rcMap[ir][key] = value);
      } else {
        this.rcMap[ir][ic] = this.rcMap[ir][ic] || [];
        return (this.rcMap[ir][ic][key] = value);
      }
    };
    this.generateTotal = function(ir, ic) {
      var VALUE = RowColMap.prototype.TYPE.VALUE;
      var _total = 0;

      if (this.isRowSpan(ir) && this.isColSpan(ir)) {
        _total = this.getRowColMapProp(ir, ic, VALUE) || 0;
      } else if (this.getRowColMapProp(ir, ic, VALUE)) {
        _total = this.getRowColMapProp(ir, ic, VALUE);
      }
      return _total;
    };
    this.convertSpanToArray = function(ir, ic, key, _return, colDel) {
      if (this.rcMap[ir] && this.isSpan(ir)) {
        var total = this.generateTotal(ir, ic);

        if (_isEnhanced(key)) {
          return new Array(total).concat(_return);
        } else {
          return new Array(total).concat(_return).join(colDel);
        }
      }
      return _return;
    };
    this.handleRowColMapProp = function(type, ir, ic, key, _return, colDel) {
      switch (type) {
        case RowColMap.prototype.TYPE.IGNORE:
          return;
        case RowColMap.prototype.TYPE.EMPTY:
          return " ";
        case RowColMap.prototype.TYPE.DEFAULT:
        default:
          return this.convertSpanToArray(ir, ic, key, _return, colDel);
      }
    };
  }
function ( ) { this . rcMap = [ ] ; this . merges = [ ] ; this . isIgnore = function ( ir , ic ) { var _ignore = RowColMap . prototype . TYPE . IGNORE ; return this . getRowColMapProp ( ir , ic , _ignore ) ; } ; this . isEmpty = function ( ir , ic ) { var _empty = RowColMap . prototype . TYPE . EMPTY ; return this . getRowColMapProp ( ir , ic , _empty ) ; } ; this . isRowSpan = function ( ir ) { var _rowspan = RowColMap . prototype . TYPE . ROWSPAN ; return this . getRowColMapProp ( ir , undefined , _rowspan ) ; } ; this . isColSpan = function ( ir ) { var _colspan = RowColMap . prototype . TYPE . COLSPAN ; return this . getRowColMapProp ( ir , undefined , _colspan ) ; } ; this . isSpan = function ( ir ) { return this . isRowSpan ( ir ) || this . isColSpan ( ir ) ; } ; this . isMerge = function ( ir ) { return this . merges . length > 0 ; } ; this . addMerge = function ( ir , mergeObj ) { var _merge = RowColMap . prototype . TYPE . MERGE ; this . merges . push ( mergeObj ) ; this . setRowColMapProp ( ir , undefined , _merge , this . merges ) ; } ; this . getRowColMapProp = function ( ir , ic , key ) { if ( this . rcMap [ ir ] ) { if ( typeof key === "undefined" ) { return this . rcMap [ ir ] [ ic ] ; } else if ( typeof ic === "undefined" ) { return this . rcMap [ ir ] [ key ] ; } else if ( this . rcMap [ ir ] [ ic ] ) { return this . rcMap [ ir ] [ ic ] [ key ] ; } } return undefined ; } ; this . setRowColMapProp = function ( ir , ic , key , value ) { this . rcMap [ ir ] = this . rcMap [ ir ] || [ ] ; if ( typeof key === "undefined" ) { return ( this . rcMap [ ir ] [ ic ] = value ) ; } else if ( typeof ic === "undefined" ) { return ( this . rcMap [ ir ] [ key ] = value ) ; } else { this . rcMap [ ir ] [ ic ] = this . rcMap [ ir ] [ ic ] || [ ] ; return ( this . rcMap [ ir ] [ ic ] [ key ] = value ) ; } } ; this . generateTotal = function ( ir , ic ) { var VALUE = RowColMap . prototype . TYPE . VALUE ; var _total = 0 ; if ( this . isRowSpan ( ir ) && this . isColSpan ( ir ) ) { _total = this . getRowColMapProp ( ir , ic , VALUE ) || 0 ; } else if ( this . getRowColMapProp ( ir , ic , VALUE ) ) { _total = this . getRowColMapProp ( ir , ic , VALUE ) ; } return _total ; } ; this . convertSpanToArray = function ( ir , ic , key , _return , colDel ) { if ( this . rcMap [ ir ] && this . isSpan ( ir ) ) { var total = this . generateTotal ( ir , ic ) ; if ( _isEnhanced ( key ) ) { return new Array ( total ) . concat ( _return ) ; } else { return new Array ( total ) . concat ( _return ) . join ( colDel ) ; } } return _return ; } ; this . handleRowColMapProp = function ( type , ir , ic , key , _return , colDel ) { switch ( type ) { case RowColMap . prototype . TYPE . IGNORE : return ; case RowColMap . prototype . TYPE . EMPTY : return " " ; case RowColMap . prototype . TYPE . DEFAULT : default : return this . convertSpanToArray ( ir , ic , key , _return , colDel ) ; } } ; }
RowColMap main interface constructor
@memberof TableExport.prototype
@constructor
RowColMap main interface constructor