@Nullable Object getRawDataIfCached(@NotNull String dataId, boolean uiOnly) {
    //noinspection DuplicatedCode
    if (PlatformCoreDataKeys.CONTEXT_COMPONENT.is(dataId)) return dereference(myComponentRef.ref);
    if (PlatformCoreDataKeys.IS_MODAL_CONTEXT.is(dataId)) return myComponentRef.modalContext;
    if (PlatformDataKeys.MODALITY_STATE.is(dataId)) return myComponentRef.modalityState;
    if (PlatformDataKeys.SPEED_SEARCH_TEXT.is(dataId) && myComponentRef.speedSearchText != null) return myComponentRef.speedSearchText;
    if (PlatformDataKeys.SPEED_SEARCH_COMPONENT.is(dataId) && myComponentRef.speedSearchRef != null) return myComponentRef.speedSearchRef.get();
    if (myCachedData.isEmpty()) return null;

    for (ProviderData map : myCachedData) {
      Object answer = map.uiSnapshot.get(dataId);
      if (answer == null && !uiOnly) answer = map.computedData.get(dataId);
      if (answer != null) {
        return answer == EXPLICIT_NULL ? null : answer;
      }
    }
    return null;
  }
@Nullable Object getRawDataIfCached(@NotNull String dataId, boolean uiOnly)