Copyright (c) 2006, 2015 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2006, 2015 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.core.internal.resources.mapping; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.PlatformObject;
A special model object used to represent shallow folders
/** * A special model object used to represent shallow folders */
public class ShallowContainer extends PlatformObject { private IContainer container; public ShallowContainer(IContainer container) { this.container = container; } public IContainer getResource() { return container; } @Override public boolean equals(Object obj) { if (obj == this) return true; if (obj instanceof ShallowContainer) { ShallowContainer other = (ShallowContainer) obj; return other.getResource().equals(getResource()); } return false; } @Override public int hashCode() { return getResource().hashCode(); } @Override @SuppressWarnings("unchecked") public <T> T getAdapter(Class<T> adapter) { if (adapter == IResource.class || adapter == IContainer.class) return (T) container; return super.getAdapter(adapter); } }