code: Collection<LookupResult> lookupMostSpecificModels(Resource resource, String modelName) {
          if (resource == null) {
              throw new IllegalArgumentException("Method argument resource must not be null.");
          }
          if (modelName == null) {
              throw new IllegalArgumentException("Method argument modelName must not be null.");
          }
  
          Key key = key(resource, modelName);
  
          if (isUnmapped(key)) {
              return null;
          }
  
          Collection<LookupResult> matchingModels = lookupFromCache(key);
          if (matchingModels == null) {
              final int currentStateId = this.state.get();
  
              matchingModels = resolveMostSpecificModelSources(resource, modelName);
  
              if (matchingModels.isEmpty()) {
                  markAsUnmapped(key, currentStateId);
              } else {
                  cache(key, matchingModels, currentStateId);
              }
          }
  
          return nullIfEmpty(matchingModels);
      }
docs: Finds the most specific models for the given {@link Resource}. The model's model
  name must match the provided model name.
  
  @param resource  must not be <code>null</code>.
  @param modelName must not be <code>null</code>.
  @return the resolved models, or <code>null</code> if no such models exist.