/******************************************************************************* * Copyright (c) 2007, 2015 Borland Software 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: * Borland Software Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.m2m.internal.qvt.oml.common.io.eclipse; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.runtime.Path; import org.eclipse.m2m.internal.qvt.oml.common.io.CFile; import org.eclipse.m2m.internal.qvt.oml.common.io.CFolder; public abstract class EclipseContainer extends EclipseResource implements CFolder { EclipseContainer(IContainer cont) { super(cont); } public static CFolder makeFolder(IContainer cont) { if(cont instanceof IFolder) { return new EclipseFolder((IFolder)cont); } else if(cont instanceof IProject) { return new EclipseProject((IProject)cont); } else if(cont instanceof IWorkspaceRoot) { return new EclipseRoot((IWorkspaceRoot)cont); } else { throw new IllegalArgumentException("Not a folder: " + cont); //$NON-NLS-1$ } } public CFile getFile(String name) { return new EclipseFile(getContainer().getFile(new Path(name))); } private IContainer getContainer() { return (IContainer)myResource; } }