protected void maintainVersion() {
   if (shouldUpdate()) {
     if (isOutOfDate()) {
       // we need to update from the default, overriding any out-dated keys
       loader.updateFromResource();
       for (EntryType type : EntryType.values()) {
         LinkedHashMap<String, ConfigEntry> mappings = loader.getMappings(type);
         data.put(type, mappings);
       }
     }
   }
   setDateStamp();
 }
 public boolean loadFromConfig() {
   loader.setForceReload(true);
   boolean changed = false;
   synchronized (data) {
     LinkedHashMap<String, List<String>> oldData = getDataStrings();
     data.clear();
     for (EntryType type : EntryType.values()) {
       LinkedHashMap<String, ConfigEntry> mappings = loader.getMappings(type);
       data.put(type, mappings);
     }
     maintainVersion();
     LinkedHashMap<String, List<String>> newData = getDataStrings();
     changed |= !oldData.equals(newData);
     if (changed) {
       savedDataStrings.clear();
       savedDataStrings.putAll(newData);
     }
   }
   return changed;
 }