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();
}
}