///*******************************************************************************
// * Copyright (c) 2006 Oracle Corporation and others.
// * 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:
// *     Oracle Corporation - initial API and implementation
// *******************************************************************************/
//package org.eclipse.bpel.model.resource;
//
//import org.eclipse.bpel.common.ui.editmodel.IResourceSetProvider;
//import org.eclipse.core.resources.IResource;
//import org.eclipse.emf.ecore.resource.ResourceSet;
//
///**
// * @author Michal Chmielewski (michal.chmielewski@oracle.com)
// * @date May 30, 2007
// *
// */
//public class ResourceSetProvider implements IResourceSetProvider {
//	
//	
//	/** (non-Javadoc)
//	 * @see org.eclipse.bpel.common.ui.editmodel.IResourceSetProvider#getResourceSet(org.eclipse.core.resources.IResource)
//	 */
//	
//	public ResourceSet getResourceSet(IResource resource) {
//		return new BPELResourceSetImpl();
//	}
//
//}
