public Pair<IndexMultiKey, EventTableAndNamePair> findTable( Set<String> keyPropertyNames, Set<String> rangePropertyNames, List<IndexHintInstruction> optionalIndexHintInstructions) { Pair<IndexMultiKey, EventTableIndexEntryBase> pair = EventTableIndexUtil.findIndexBestAvailable( tableIndexesRefCount, keyPropertyNames, rangePropertyNames, optionalIndexHintInstructions); if (pair == null) { return null; } EventTable tableFound = ((EventTableIndexRepositoryEntry) pair.getSecond()).getTable(); return new Pair<IndexMultiKey, EventTableAndNamePair>( pair.getFirst(), new EventTableAndNamePair(tableFound, pair.getSecond().getOptionalIndexName())); }