/******************************************************************************* * Copyright (c) 2004, 2006 * Thomas Hallgren, Kenneth Olwing, Mitch Sonies * Pontus Rydin, Nils Unden, Peer Torngren * The code, documentation and other materials contained herein have been * licensed under the Eclipse Public License - v 1.0 by the individual * copyright holders listed above, as Initial Contributors under such license. * The text of such license is available at www.eclipse.org. *******************************************************************************/ package org.eclipse.buckminster.core.reader; import java.io.File; import java.io.IOException; import org.eclipse.buckminster.core.cspec.model.ComponentRequest; import org.eclipse.buckminster.core.ctype.IComponentType; import org.eclipse.buckminster.core.resolver.NodeQuery; import org.eclipse.buckminster.core.resolver.ResolverDecision; import org.eclipse.buckminster.core.resolver.ResolverDecisionType; import org.eclipse.buckminster.core.version.IVersionConverter; import org.eclipse.buckminster.core.version.ProviderMatch; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ecf.core.security.IConnectContext; /** * @author Thomas Hallgren */ public abstract class AbstractReader implements IComponentReader { private final ProviderMatch providerMatch; private final IReaderType readerType; protected AbstractReader(IReaderType readerType, ProviderMatch providerMatch) { this.providerMatch = providerMatch; this.readerType = readerType; } @Override public boolean canMaterialize() { return true; } @Override public void close() { } @Override public IComponentType getComponentType() { return providerMatch.getComponentType(); } @Override public IConnectContext getConnectContext() { return providerMatch.getConnectContext(); } @Override public File getLocation() throws CoreException { return null; } @Override public NodeQuery getNodeQuery() { return providerMatch.getNodeQuery(); } @Override public ProviderMatch getProviderMatch() { return providerMatch; } @Override public IReaderType getReaderType() { return readerType; } @Override public IVersionConverter getVersionConverter() throws CoreException { return this.getProviderMatch().getVersionConverter(); } @Override public boolean isFileSystemReader() { return false; } @Override public ResolverDecision logDecision(ComponentRequest request, ResolverDecisionType decisionType, Object... args) { return getNodeQuery().logDecision(request, decisionType, args); } @Override public ResolverDecision logDecision(ResolverDecisionType decisionType, Object... args) { return getNodeQuery().logDecision(decisionType, args); } protected void copyOverlay(IPath destination, IProgressMonitor monitor) throws CoreException { // TODO: Handle file overlays } protected File createTempFile() throws IOException { return File.createTempFile(this.getReaderType().getId() + '-', ".tmp"); //$NON-NLS-1$ } }