public synchronized boolean canMapName(String name) {
   for (DataKeyFileMapper mapper : m_mappers) {
     if (mapper.canMapName(name)) {
       return true;
     }
   }
   return false;
 }
 public synchronized boolean canMapKey(DataKey key) {
   for (DataKeyFileMapper mapper : m_mappers) {
     if (mapper.canMapKey(key)) {
       return true;
     }
   }
   return false;
 }
 public synchronized DataKey getKey(String name) {
   for (DataKeyFileMapper mapper : m_mappers) {
     if (mapper.canMapName(name)) {
       return mapper.getKey(name);
     }
   }
   throw new IllegalArgumentException(String.format("No mapper found for file name [%s]", name));
 }
 public synchronized String getFileName(DataKey key) {
   for (DataKeyFileMapper mapper : m_mappers) {
     if (mapper.canMapKey(key)) {
       return mapper.getFileName(key);
     }
   }
   throw new IllegalArgumentException(String.format("No mapper found for key [%s]", key));
 }