OW2 Consortium telosys

Rev

Rev 13 | Blame | Compare with Previous | Last modification | View Log | RSS feed

//------------------------------------------------------------------------------
//------------------------------------------------------------------------------

/**
 * Map class with methods like Java HashMap or Hashtable
 * @author Laurent GUERIN
 */

//------------------------------------------------------------------------------
function Map()
{
        //------------------------------------------------------------------------------
        // PRIVATE INSTANCE ATTRIBUTE(S)
        //------------------------------------------------------------------------------
        var _oMap = new Object ;
        
        //------------------------------------------------------------------------------
        // METHODS
        //------------------------------------------------------------------------------
        this.put = function( key, value )
        {
                if ( key != null )
                {
                        _oMap[key] = value ;
                }
        }
        
        //------------------------------------------------------------------------------
        this.get = function( key )
        {
                if ( key != null )
                {
                        var value = _oMap[key];
                        return ( value === undefined ? null : value )
                }
                return null;
        }
        
        //------------------------------------------------------------------------------
        this.remove = function( key )
        {
                if ( key != null )
                {
                        delete _oMap[key];
                }
        }
        
        //------------------------------------------------------------------------------
        this.clear = function()
        {
                for ( var key in _oMap )
                {
                        delete _oMap[key];
                }
        }
        
        //------------------------------------------------------------------------------
        this.size = function()
        {
                var i = 0 ;
                for ( var key in _oMap )
                {
                        i++ ;
                }
                return i;
        }
        
        //------------------------------------------------------------------------------
        this.containsKey = function(key) 
        {
                if ( key != null )
                {
                        return ( _oMap[key] === undefined ? false : true )
                }
                return false;
        }
        
        //------------------------------------------------------------------------------
        this.keysArray = function ()
        {
                var array = new Array();
                for ( var key in _oMap )
                {
                        array.push(key);
                }
                return array;
        }
        
        //------------------------------------------------------------------------------
        this.keysString = function ()
        {
                var s = "";
                var i = 0 ;
                for ( var key in _oMap )
                {
                        if ( i > 0 ) 
                        {
                                s += ",";
                        }
                        s += key ;
                        i++;
                }
                return s;
        }
        
        //------------------------------------------------------------------------------
        this.show = function ()
        {
                var s = "";
                for ( var key in _oMap )
                {
                        var value = _oMap[key];
                        s += "\n. " + key + " : " + value ;
                }
                alert("Map content : " + s);
        }
}