private void buildMapCaches() {
   /*
    * There exists a direct relationship between MappingOrigins and the tables that are part of the MappingSystem.
    * Therefore, if a new origin is added, probably a new table should be instantiate here as well.
    */
   if (iterateMask) {
     smc = new SimpleMapCache(dao.putTable(MappingOrigin.Southbound.toString()));
     pmc = new MultiTableMapCache(dao.putTable(MappingOrigin.Northbound.toString()));
   } else {
     smc = new FlatMapCache(dao.putTable(MappingOrigin.Southbound.toString()));
     pmc = new FlatMapCache(dao.putTable(MappingOrigin.Northbound.toString()));
   }
   tableMap.put(MappingOrigin.Northbound, pmc);
   tableMap.put(MappingOrigin.Southbound, smc);
 }
 public void cleanCaches() {
   dao.removeAll();
   buildMapCaches();
 }