code: @Override
      public final Evaluation getCachedMoveEvaluation(Move<?> move) {
          if(evaluatedMove == null || !evaluatedMove.equals(move)){
              // cache miss
              return null;
          } else {
              // cache hit
              return evaluation;
          }
      }
docs: Retrieve a cached evaluation, if still available. If the evaluation of any
  other move has been cached at a later point in time, the value for this move
  will have been overwritten.
  
  @param move move applied to the current solution
  @return cached evaluation of the obtained neighbour, if available, <code>null</code> if not