00001 package edu.tum.cs.util.datastruct; 00002 00003 import java.util.HashMap; 00004 00009 public class Map2D<TContext, TKey, TValue> { 00013 protected HashMap<TContext, HashMap<TKey, TValue>> map; 00017 protected HashMap<TKey, TValue> submap; 00021 protected TKey key; 00022 00023 public Map2D() { 00024 map = new HashMap<TContext, HashMap<TKey, TValue>>(); 00025 } 00026 00033 public TValue get(TContext context, TKey key) { 00034 this.key = key; 00035 submap = map.get(context); 00036 if(submap == null) { 00037 submap = new HashMap<TKey, TValue>(); 00038 map.put(context, submap); 00039 return null; 00040 } 00041 return submap.get(key); 00042 } 00043 00049 public HashMap<TKey, TValue> getSubmap(TContext context) { 00050 return map.get(context); 00051 } 00052 00057 public void put(TValue value) { 00058 submap.put(key, value); 00059 } 00060 00067 public void put(TContext context, TKey key, TValue value) { 00068 submap = map.get(context); 00069 if(submap == null) { 00070 submap = new HashMap<TKey, TValue>(); 00071 map.put(context, submap); 00072 } 00073 submap.put(this.key = key, value); 00074 } 00075 }