Copyright (c) 2006, 2017 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, 2017 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.team.internal.core.mapping; import org.eclipse.core.resources.IStorage; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Platform; import org.eclipse.team.core.history.IFileRevision; import org.eclipse.team.core.history.provider.FileRevision; import org.eclipse.team.core.variants.IResourceVariant; public class ResourceVariantFileRevision extends FileRevision implements IAdaptable { private final IResourceVariant variant; public ResourceVariantFileRevision(IResourceVariant variant) { this.variant = variant; } @Override public IStorage getStorage(IProgressMonitor monitor) throws CoreException { return variant.getStorage(monitor); } @Override public String getName() { return variant.getName(); } @Override public String getContentIdentifier() { return variant.getContentIdentifier(); } public IResourceVariant getVariant() { return variant; } @Override public boolean isPropertyMissing() { return false; } @Override public IFileRevision withAllProperties(IProgressMonitor monitor) throws CoreException { return this; } @Override @SuppressWarnings("unchecked") public <T> T getAdapter(Class<T> adapter) { if (adapter == IResourceVariant.class) return (T) variant; Object object = Platform.getAdapterManager().getAdapter(this, adapter); if (object != null) return (T) object; if (variant instanceof IAdaptable ) { IAdaptable adaptable = (IAdaptable ) variant; return adaptable.getAdapter(adapter); } return null; } @Override public boolean equals(Object obj) { if (obj instanceof ResourceVariantFileRevision) { ResourceVariantFileRevision fileRevision = (ResourceVariantFileRevision) obj; return fileRevision.getVariant().equals(getVariant()); } return false; } @Override public int hashCode() { return getVariant().hashCode(); } }