@Override
 public <T> void putUserData(@NotNull Key<T> key, @Nullable T value) {
   if (myDataHolderDelegate != null) {
     myDataHolderDelegate.putUserData(key, value);
   }
 }
 @Override
 public <T> T getUserData(@NotNull Key<T> key) {
   return myDataHolderDelegate == null ? null : myDataHolderDelegate.getUserData(key);
 }