code: @Override
      public final Validation getCachedMoveValidation(Move<?> move) {
          if(validatedMove == null || !validatedMove.equals(move)){
              // cache miss
              return null;
          } else {
              // cache hit
              return validation;
          }
      }
docs: Retrieve a cached validation, if still available. If the validation 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 validation of the obtained neighbour, if available, <code>null</code> if not