/*****************************************************************************
* Copyright (c) 2011 Atos Origin Integration.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Tristan Faure (Atos Origin Integration) tristan.faure@atosorigin.com - Initial API and implementation
*****************************************************************************/
package org.eclipse.papyrus.infra.onefile.model.mapping;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceVisitor;
import org.eclipse.core.resources.mapping.ResourceMapping;
import org.eclipse.core.resources.mapping.ResourceMappingContext;
import org.eclipse.core.resources.mapping.ResourceTraversal;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.papyrus.infra.onefile.model.IPapyrusFile;
import org.eclipse.papyrus.infra.onefile.model.PapyrusModelHelper;
import org.eclipse.papyrus.infra.onefile.providers.OneFileModelProvider;
/**
* Resource Mapping for Papyrus File
*
*/
public class PapyrusResourceMapping extends ResourceMapping {
private final IPapyrusFile papyrusFile;
public PapyrusResourceMapping(IPapyrusFile adaptableObject) {
this.papyrusFile = adaptableObject;
}
public PapyrusResourceMapping(IFile resource) {
this.papyrusFile = PapyrusModelHelper.getPapyrusModelFactory()
.createIPapyrusFile(resource);
}
@Override
public Object getModelObject() {
return papyrusFile;
}
@Override
public String getModelProviderId() {
return OneFileModelProvider.MODEL_PROVIDER_ID;
}
@Override
public IProject[] getProjects() {
return new IProject[] { papyrusFile.getProject() };
}
@Override
public ResourceTraversal[] getTraversals(ResourceMappingContext context,
IProgressMonitor monitor) throws CoreException {
// if (ResourceMappingContext.LOCAL_CONTEXT == context)
// {
// return new ResourceTraversal[]{new ResourceTraversal(new
// IResource[]{papyrusFile.get()}, IResource.DEPTH_ONE,
// IResource.NONE)};
// }
// else
// {
return new ResourceTraversal[] { new ResourceTraversal(
papyrusFile.getAssociatedResources(), IResource.DEPTH_INFINITE,
IResource.NONE) };
// }
}
@Override
public void accept(ResourceMappingContext context,
IResourceVisitor visitor, IProgressMonitor monitor)
throws CoreException {
super.accept(context, visitor, monitor);
}
}