summaryrefslogblamecommitdiff
path: root/src/library/scala/collection/mutable/MapProxy.scala
blob: 20c326b9684aa3d9f0129c13b58c5849efb40af1 (plain) (tree)
1
2
3
4
5
6
7
8

                                                                          
                                                                          


                                                                          

                                                                          


       
                                

 







                                                                          



                            
                                                                       
 
                     
 
                                                              
 
                                                                  
 
                                                                
 
                                                                    
 
                                    
 
                                                           
 
                                                       
 
                                                   
 
                                       
 
                                                          
 
                                                                      
 
                                           
 
                                                                       
 
                                                               
 


                                                        
 
/*                     __                                               *\
**     ________ ___   / /  ___     Scala API                            **
**    / __/ __// _ | / /  / _ |    (c) 2003-2006, LAMP/EPFL             **
**  __\ \/ /__/ __ |/ /__/ __ |                                         **
** /____/\___/_/ |_/____/_/ | |                                         **
**                          |/                                          **
\*                                                                      */

// $Id$


package scala.collection.mutable


/** <p>
 *    This is a simple wrapper class for <a href="Map.html"
 *    target="contentFrame"><code>scala.collection.mutable.Map</code></a>.
 *  </p>
 *  <p>
 *    It is most useful for assembling customized map abstractions
 *    dynamically using object composition and forwarding.
 *  </p>
 *
 *  @author  Matthias Zenger
 *  @version 1.0, 21/07/2003
 */
trait MapProxy[A, B] extends Map[A, B] with collection.MapProxy[A, B] {

  def self: Map[A, B]

  def update(key: A, value: B): Unit = self.update(key, value)

  override def ++=(map: Iterable[Pair[A, B]]): Unit = self ++= map

  override def ++=(it: Iterator[Pair[A, B]]): Unit = self ++= it

  override def incl(mappings: Pair[A, B]*): Unit = self ++= mappings

  def -=(key: A): Unit = self -= key

  override def --=(keys: Iterable[A]): Unit = self --= keys

  override def --=(it: Iterator[A]): Unit = self --= it

  override def excl(keys: A*): Unit = self --= keys

  override def clear: Unit = self.clear

  override def map(f: Pair[A, B] => B): Unit = self.map(f)

  override def filter(p: Pair[A, B] => Boolean): Unit = self.filter(p)

  override def toString() = self.toString()

  override def mappingToString(p: Pair[A, B]) = self.mappingToString(p)

  override def <<(cmd: Message[Pair[A, B]]): Unit = self << cmd

  override def clone(): Map[A, B] = new MapProxy[A, B] {
    def self = MapProxy.this.self.clone()
  }
}