/******************************************************************************* * Copyright (c) 2006 IBM Corporation and others. * 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.update.internal.core; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import org.eclipse.update.core.ContentReference; /** * NullContentReference implements a general access wrapper * to feature and site content -- but, for which, there is no * content actually found. This way, it can "keep" the ID that was * requested, and still hold a place in lists and arrays, without a * change to other program logic. It does, how ever require the internal * algorithms to be more careful about assumptions made ... for example, * just because asFile is null, it does not follow that asURL will not be null. * <p> * This class may not be instantiated or subclassed by clients. * </p> * @see org.eclipse.update.core.ContentReference * @see org.eclipse.update.core.JarContentReference * @see org.eclipse.update.core.JarEntryContentReference */ public class NullContentReference extends ContentReference { /** * Contructor for the "missing jar" case. * * @param id */ public NullContentReference(String id) { super(id, (File) null); } /** * A factory method to create a content reference of * the same type. * * @param id "symbolic" path identifier */ public ContentReference createContentReference(String id, File file) { return new NullContentReference(id); } /** * Overrides super class implementation to avoid throwing a FileNotFound exception. * * @return null */ public InputStream getInputStream() throws IOException { return null; } /** * Overrides super class implementation to avoid throwing a FileNotFound exception. * * @return null */ public File asFile() throws IOException { return null; } /** * Overrides super class implementation to avoid throwing URL exceptions. * * @return null */ public URL asURL() throws IOException { return null; } /** * Return string representation of this reference. * * @return string representation */ public String toString() { return "Missing archive file: " + '(' + getIdentifier() + ')'; //$NON-NLS-1$ } }