/**
 * <copyright>
 *
 * Copyright (c) 2021 Siemens and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
 *
 * Contributors:
 *     Siemens - [574930] Initial API and implementation
 *
 * </copyright>
 */
package org.eclipse.sphinx.emf.workspace.loading.operations;

import org.eclipse.sphinx.platform.operations.IWorkspaceOperation;

/**
 * Interface for ModelLoadManager UpdateResourceURIOperation.
 */
public interface IUpdateResourceURIOperation extends IWorkspaceOperation {

}