docs: protected Resource loadAndWatchResource(final ResourceRelocationChange change) {
      try {
        Resource _switchResult = null;
        final ResourceRelocationContext.ChangeType changeType = this.changeType;
        if (changeType != null) {
          switch (changeType) {
            case MOVE:
            case RENAME:
              Resource _xblockexpression = null;
              {
                final Resource original = this.resourceSet.getResource(change.getFromURI(), true);
                final IChangeSerializer.IModification<Resource> _function = (Resource it) -> {
                  original.setURI(change.getToURI());
                };
                this.changeSerializer.<Resource>addModification(original, _function);
                _xblockexpression = original;
              }
              _switchResult = _xblockexpression;
              break;
            case COPY:
              Resource _xblockexpression_1 = null;
              {
                final Resource copy = this.resourceSet.createResource(change.getFromURI());
                copy.load(this.resourceSet.getURIConverter().createInputStream(change.getFromURI()), null);
                copy.setURI(change.getToURI());
                _xblockexpression_1 = copy;
              }
              _switchResult = _xblockexpression_1;
              break;
            default:
              break;
          }
        }
        final Resource resource = _switchResult;
        return resource;
      } catch (Throwable _e) {
        throw Exceptions.sneakyThrow(_e);
      }
    }