/*******************************************************************************
* Copyright (c) 2012-2015 Codenvy, S.A.
* 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:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.core.internal.resources;
import org.eclipse.core.resources.FileInfoMatcherDescription;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceFilterDescription;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
/**
* @author Evgen Vidolob
*/
public abstract class Container extends Resource implements IContainer{
protected Container(IPath path, Workspace workspace) {
super(path, workspace);
}
@Override
public IResourceFilterDescription createFilter(int type, FileInfoMatcherDescription matcherDescription, int updateFlags, IProgressMonitor monitor) throws CoreException {
throw new UnsupportedOperationException();
}
@Override
public boolean exists(IPath childPath) {
return workspace.getResourceInfo(getFullPath().append(childPath)) != null;
}
@Override
public IResource findMember(String memberPath, boolean phantom) {
IPath childPath = getFullPath().append(memberPath);
ResourceInfo info = workspace.getResourceInfo(childPath);
return info == null ? null : workspace.newResource(childPath, info.getType());
}
@Override
public IResource findMember(String memberPath) {
return findMember(memberPath, false);
}
@Override
public IResource findMember(IPath childPath) {
return findMember(childPath, false);
}
@Override
public IResource findMember(IPath childPath, boolean phantom) {
childPath = getFullPath().append(childPath);
ResourceInfo info = workspace.getResourceInfo(childPath);
return (info == null) ? null : workspace.newResource(childPath, info.getType());
}
@Override
public IResourceFilterDescription[] getFilters() throws CoreException {
throw new UnsupportedOperationException();
}
@Override
public IFile getFile(IPath childPath) {
return (IFile) workspace.newResource(getFullPath().append(childPath), FILE);
}
@Override
public IFolder getFolder(IPath childPath) {
return (IFolder) workspace.newResource(getFullPath().append(childPath), FOLDER);
}
@Override
public IResource[] members() throws CoreException {
// forward to central method
return members(IResource.NONE);
}
@Override
public IResource[] members(boolean phantom) throws CoreException {
// forward to central method
return members(phantom ? INCLUDE_PHANTOMS : IResource.NONE);
}
@Override
public IResource[] members(int memberFlags) throws CoreException {
return workspace.getChildren(path);
}
@Override
public String getDefaultCharset() throws CoreException {
return getDefaultCharset(true);
}
@Override
public IFile[] findDeletedMembersWithHistory(int depth, IProgressMonitor monitor) throws CoreException {
throw new UnsupportedOperationException();
}
@Override
public void setDefaultCharset(String charset) throws CoreException {
throw new UnsupportedOperationException();
}
@Override
public void setDefaultCharset(String newCharset, IProgressMonitor monitor) throws CoreException {
// throw new UnsupportedOperationException();
}
/* (non-Javadoc)
* @see IFolder#getFolder(String) and IProject#getFolder(String)
*/
public IFolder getFolder(String name) {
return (IFolder) workspace.newResource(getFullPath().append(name), FOLDER);
}
/* (non-Javadoc)
* @see IFolder#getFile(String) and IProject#getFile(String)
*/
public IFile getFile(String name) {
return (IFile) workspace.newResource(getFullPath().append(name), FILE);
}
}