private @Nullable CachedState put(@NotNull String key,
                                    @Nullable Point location, boolean locationSet,
                                    @Nullable Dimension size, boolean sizeSet,
                                    boolean maximized, boolean maximizedSet,
                                    boolean fullScreen, boolean fullScreenSet) {
    CachedState state = myStateMap.get(key);
    if (state == null) {
      state = new CachedState();
      if (!state.set(location, locationSet, size, sizeSet, maximized, maximizedSet, fullScreen, fullScreenSet)) return null;
      myStateMap.put(key, state);
      return state;
    }
    else {
      if (state.set(location, locationSet, size, sizeSet, maximized, maximizedSet, fullScreen, fullScreenSet)) return state;
      myStateMap.remove(key);
      return null;
    }
  }
private @Nullable CachedState put(@NotNull String key,
                                    @Nullable Point location, boolean locationSet,
                                    @Nullable Dimension size, boolean sizeSet,
                                    boolean maximized, boolean maximizedSet,
                                    boolean fullScreen, boolean fullScreenSet)