@NotNull
    public List<String> getNext(@NotNull String key) {
      List<String> nextProperties = null;
      if (myKeyIndices.containsKey(key)) {
        final IntList indices = myKeyIndices.get(key);
        for (int i = 0; i < indices.size(); i++) {
          final int searchIdx = indices.getInt(i) + 1;
          if (searchIdx < myKeys.size()) {
            final String nextProperty = myKeys.get(searchIdx);
            if (nextProperty != null) {
              if (nextProperties == null) {
                nextProperties = new SmartList<>();
              }
              nextProperties.add(nextProperty);
            }
          }
        }
      }
      return nextProperties == null ? Collections.emptyList() : nextProperties;
    }
@NotNull
    public List<String> getNext(@NotNull String key)