blob: 740721c918b9cf951912c6a1de82fa3bfd96fb7e [file] [log] [blame]
/**
* <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.tests.emf.workspace.extension.loading.custom;
import java.util.Collection;
import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.sphinx.emf.metamodel.IMetaModelDescriptor;
import org.eclipse.sphinx.emf.model.IModelDescriptor;
import org.eclipse.sphinx.emf.workspace.loading.DefaultModelLoadManager;
import org.eclipse.sphinx.emf.workspace.loading.operations.IFileLoadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IFileReloadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IFileUnloadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IModelLoadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IModelUnloadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IProjectLoadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IProjectReloadOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IUnresolveUnreachableCrossProjectReferencesOperation;
import org.eclipse.sphinx.emf.workspace.loading.operations.IUpdateResourceURIOperation;
public class CustomModelLoadManager extends DefaultModelLoadManager {
@Override
public IFileLoadOperation createFileLoadOperation(Collection<IFile> files, IMetaModelDescriptor mmDescriptor) {
return new CustomFileLoadOperation(files, mmDescriptor);
}
@Override
public IFileReloadOperation createFileReloadOperation(Collection<IFile> files, IMetaModelDescriptor mmDescriptor, boolean memoryOptimized) {
return new CustomFileReloadOperation(files, mmDescriptor, memoryOptimized);
}
@Override
public IFileUnloadOperation createFileUnloadOperation(Collection<IFile> files, IMetaModelDescriptor mmDescriptor, boolean memoryOptimized) {
return new CustomFileUnloadOperation(files, mmDescriptor, memoryOptimized);
}
@Override
public IModelLoadOperation createModelLoadOperation(IModelDescriptor modelDescriptor, boolean includeReferencedScopes) {
return new CustomModelLoadOperation(modelDescriptor, includeReferencedScopes);
}
@Override
public IModelUnloadOperation createModelUnloadOperation(Map<TransactionalEditingDomain, Collection<Resource>> resourcesToUnload,
boolean memoryOptimized) {
return new CustomModelUnloadOperation(resourcesToUnload, memoryOptimized);
}
@Override
public IProjectLoadOperation createProjectLoadOperation(Collection<IProject> projects, boolean includeReferencedProjects,
IMetaModelDescriptor mmDescriptor) {
return new CustomProjectLoadOperation(projects, includeReferencedProjects, mmDescriptor);
}
@Override
public IProjectReloadOperation createProjectReloadOperation(Collection<IProject> projects, boolean includeReferencedProjects,
IMetaModelDescriptor mmDescriptor) {
return new CustomProjectReloadOperation(projects, includeReferencedProjects, mmDescriptor);
}
@Override
public IUnresolveUnreachableCrossProjectReferencesOperation createUnresolveUnreachableCrossProjectReferencesOperation(
Collection<IProject> projectsWithUnreachableCrossRefrencesToUnresolve) {
return new CustomUnresolveUnreachableCrossProjectReferencesOperation(projectsWithUnreachableCrossRefrencesToUnresolve);
}
@Override
public IUpdateResourceURIOperation createUpdateResourceURIOperation(Map<IFile, IPath> filesToUpdate) {
return new CustomUpdateResourceURIOperation(filesToUpdate);
}
}