blob: 352a67eef7d1ed32898e56d7c0d291362db168a5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2009 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.osgi.baseadaptor.bundlefile;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
/**
* Represents a directory entry in a ZipBundleFile. This object is used to
* reference a directory entry in a ZipBundleFile when the directory entries are
* not included in the zip file.
* @since 3.2
*/
public class DirZipBundleEntry extends BundleEntry {
/**
* ZipBundleFile for this entry.
*/
private ZipBundleFile bundleFile;
/**
* The name for this entry
*/
String name;
public DirZipBundleEntry(ZipBundleFile bundleFile, String name) {
this.name = (name.length() > 0 && name.charAt(0) == '/') ? name.substring(1) : name;
this.bundleFile = bundleFile;
}
public InputStream getInputStream() throws IOException {
return null;
}
public long getSize() {
return 0;
}
public String getName() {
return name;
}
public long getTime() {
return 0;
}
public URL getLocalURL() {
try {
return new URL("jar:" + bundleFile.basefile.toURL() + "!/" + name); //$NON-NLS-1$ //$NON-NLS-2$
} catch (MalformedURLException e) {
//This can not happen, unless the jar protocol is not supported.
return null;
}
}
public URL getFileURL() {
try {
return bundleFile.extractDirectory(name).toURL();
} catch (MalformedURLException e) {
// this cannot happen.
return null;
}
}
}