| /******************************************************************************* |
| * 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$ |
| } |
| } |