/**
  * Adds a new provider to factory and adds all supported algorithms from the provider to the
  * algorithms-list. NOTE: Existing algorithms will be overridden when the new provider contains
  * the same algorithm (maybe another implementation).
  *
  * @param provider
  */
 public void addProvider(ChecksumProvider provider) {
   knownProvider.put(provider.getName(), provider);
   for (ChecksumAlgorithm algorithm : provider.getSupportedAlgorithms()) {
     addAlgorithm(algorithm);
   }
 }
 /**
  * Removes a provider, but not the added algorithms.
  *
  * @param provider
  */
 public void removeProvider(ChecksumProvider provider) {
   knownProvider.remove(provider.getName());
 }