code: @Override
      public void visit(LowLevelAbstractionDefinition lowLevelAbstractionDefinition) throws NoSuchAlgorithmException, AlgorithmSourceReadException {
          String algorithmId = lowLevelAbstractionDefinition.getAlgorithmId();
          Algorithm algorithm = this.algorithmSource.readAlgorithm(algorithmId);
          if (algorithm == null && algorithmId != null) {
              throw new NoSuchAlgorithmException("Low level abstraction definition " + lowLevelAbstractionDefinition.getId() + " wants the algorithm " + algorithmId + ", but no such algorithm is available.");
          }
          this.algorithms.put(lowLevelAbstractionDefinition, algorithm);
      }
docs: Throws an exception if no algorithm was found for the given low level
  abstraction definition.
  
  @param lowLevelAbstractionDefinition the low level abstraction definition
  to check.
  @throws NoSuchAlgorithmException if no algorithm was found in the
  algorithm source.
  @throws AlgorithmSourceReadException if an error occurred while reading
  from the algorithm source.