/******************************************************************************* * Copyright (c) 2012 The PDT Extension Group (https://github.com/pdt-eg) * 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 ******************************************************************************/ package org.pdtextensions.server.internal.web; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.pdtextensions.server.PEXServerPlugin; import org.pdtextensions.server.web.IPhpWebFolder; /** * A plain storage for non web projects * * @author mepeisen * */ public class PlainPhpProjectStorage implements IWebProjectStorage { /** eclipse project */ private IProject project; /** * The php project * @param project */ public PlainPhpProjectStorage(IProject project) { this.project = project; } /** * @see org.pdtextensions.server.internal.web.IWebProjectStorage#setDefaultWebFolder(org.eclipse.core.resources.IContainer) */ @Override public void setDefaultWebFolder(IContainer folder) throws CoreException { if (this.project != folder) { throw new CoreException(new Status(IStatus.ERROR, PEXServerPlugin.PLUGIN_ID, "Unable to change webroot on classic projects")); //$NON-NLS-1$ } // silently ignore. The webroot is already to project itself. } /** * @see org.pdtextensions.server.internal.web.IWebProjectStorage#getWebFolders() */ @Override public IPhpWebFolder[] getWebFolders() { return new IPhpWebFolder[0]; } /** * @see org.pdtextensions.server.internal.web.IWebProjectStorage#createWebFolder(org.eclipse.core.resources.IContainer, java.lang.String) */ @Override public IPhpWebFolder createWebFolder(IContainer folder, String pathName) throws CoreException { throw new CoreException(new Status(IStatus.ERROR, PEXServerPlugin.PLUGIN_ID, "Unable to create a new web folder on classic projects")); //$NON-NLS-1$ } /** * @see org.pdtextensions.server.internal.web.IWebProjectStorage#removeWebFolder(org.pdtextensions.server.web.IPhpWebFolder) */ @Override public void removeWebFolder(IPhpWebFolder folder) throws CoreException { throw new CoreException(new Status(IStatus.ERROR, PEXServerPlugin.PLUGIN_ID, "Classic projects do not contain web folders. Cannot remove.")); //$NON-NLS-1$ } /** * @see org.pdtextensions.server.internal.web.IWebProjectStorage#getDefaultWebFolder() */ @Override public IContainer getDefaultWebFolder() { return this.project; } }