@Override public DistinctMarketDataSelector findMatchingSelector( ValueSpecification valueSpecification, String calculationConfigurationName, SelectorResolver resolver) { if (_calcConfigNames != null && !_calcConfigNames.contains(calculationConfigurationName)) { return null; } if (!s_compatibleVRNames.contains(valueSpecification.getValueName())) { return null; } VolatilitySurfaceKey key = createKey(valueSpecification); if (!contains(_names, key.getName())) { return null; } if (_nameMatchPattern != null && !_nameMatchPattern.getPattern().matcher(key.getName()).matches()) { return null; } if (_nameLikePattern != null && !_nameLikePattern.getPattern().matcher(key.getName()).matches()) { return null; } if (!contains(_instrumentTypes, key.getInstrumentType())) { return null; } if (!contains(_quoteTypes, key.getQuoteType())) { return null; } if (!contains(_quoteUnits, key.getQuoteUnits())) { return null; } return this; }