org.eclipse.update.core
Class FeatureContentProvider

java.lang.Object
  extended by org.eclipse.update.core.FeatureContentProvider
All Implemented Interfaces:
IFeatureContentProvider

public abstract class FeatureContentProvider
extends java.lang.Object
implements IFeatureContentProvider

Base implementation of a feature content provider. This class provides a set of helper methods useful for implementing feature content providers. In particular, methods dealing with downloading and caching of feature files.

This class must be subclassed by clients.

Note: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Since:
2.0
See Also:
IFeatureContentProvider

Nested Class Summary
 class FeatureContentProvider.FileFilter
           
 
Field Summary
static java.lang.String JAR_EXTENSION
           
 
Constructor Summary
FeatureContentProvider(java.net.URL base)
          Feature content provider constructor
 
Method Summary
 java.io.File asLocalFile(ContentReference ref, InstallMonitor monitor)
          Returns the specified reference as a local file.
 ContentReference asLocalReference(ContentReference ref, InstallMonitor monitor)
          Returns the specified reference as a local file system reference.
 long getDownloadSizeFor(IPluginEntry[] pluginEntries, INonPluginEntry[] nonPluginEntries)
          Returns the total size of all archives required for the specified plug-in and non-plug-in entries (the "packaging" view).
 IFeature getFeature()
          Returns the feature associated with this content provider.
 long getInstallSizeFor(IPluginEntry[] pluginEntries, INonPluginEntry[] nonPluginEntries)
          Returns the total size of all files required for the specified plug-in and non-plug-in entries (the "logical" view).
protected  java.lang.String getPathID(INonPluginEntry entry)
          Returns the path identifer for a non plugin entry.
protected  java.lang.String getPathID(IPluginEntry entry)
          Returns the path identifier for a plugin entry.
 java.net.URL getURL()
          Returns the feature url.
protected  java.io.File getWorkingDirectory()
          Returns working directory for this content provider
 void setFeature(IFeature feature)
          Sets the feature associated with this content provider.
protected  void validatePermissions(ContentReference[] references)
          Sets the permission of all the ContentReferences Check for the .permissions contentReference and use it to set the permissions of other ContentReference
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.update.core.IFeatureContentProvider
getArchiveReferences, getFeatureEntryArchiveReferences, getFeatureEntryContentReferences, getFeatureManifestReference, getNonPluginEntryArchiveReferences, getPluginEntryArchiveReferences, getPluginEntryContentReferences, getVerifier
 

Field Detail

JAR_EXTENSION

public static final java.lang.String JAR_EXTENSION
See Also:
Constant Field Values
Constructor Detail

FeatureContentProvider

public FeatureContentProvider(java.net.URL base)
Feature content provider constructor

Parameters:
base - feature URL. The interpretation of this URL is specific to each content provider.
Since:
2.0
Method Detail

getURL

public java.net.URL getURL()
Returns the feature url.

Specified by:
getURL in interface IFeatureContentProvider
Returns:
feature url
See Also:
IFeatureContentProvider.getURL()

getFeature

public IFeature getFeature()
Returns the feature associated with this content provider.

Specified by:
getFeature in interface IFeatureContentProvider
Returns:
feature for this content provider
See Also:
IFeatureContentProvider.getFeature()

setFeature

public void setFeature(IFeature feature)
Sets the feature associated with this content provider.

Specified by:
setFeature in interface IFeatureContentProvider
Parameters:
feature - feature for this content provider
See Also:
IFeatureContentProvider.setFeature(IFeature)

asLocalReference

public ContentReference asLocalReference(ContentReference ref,
                                         InstallMonitor monitor)
                                  throws java.io.IOException,
                                         CoreException
Returns the specified reference as a local file system reference. If required, the file represented by the specified content reference is first downloaded to the local system

Parameters:
ref - content reference
monitor - progress monitor, can be null
Throws:
java.io.IOException
CoreException
Since:
2.0

asLocalFile

public java.io.File asLocalFile(ContentReference ref,
                                InstallMonitor monitor)
                         throws java.io.IOException,
                                CoreException
Returns the specified reference as a local file. If required, the file represented by the specified content reference is first downloaded to the local system

Parameters:
ref - content reference
monitor - progress monitor, can be null
Throws:
java.io.IOException
CoreException
Since:
2.0

getWorkingDirectory

protected java.io.File getWorkingDirectory()
                                    throws java.io.IOException
Returns working directory for this content provider

Returns:
working directory
Throws:
java.io.IOException
Since:
2.0

getDownloadSizeFor

public long getDownloadSizeFor(IPluginEntry[] pluginEntries,
                               INonPluginEntry[] nonPluginEntries)
Returns the total size of all archives required for the specified plug-in and non-plug-in entries (the "packaging" view).

Specified by:
getDownloadSizeFor in interface IFeatureContentProvider
Parameters:
pluginEntries - an array of plug-in entries
nonPluginEntries - an array of non-plug-in entries
Returns:
total download size, or an indication that size could not be determined
See Also:
IFeatureContentProvider.getDownloadSizeFor(IPluginEntry[], INonPluginEntry[])

getInstallSizeFor

public long getInstallSizeFor(IPluginEntry[] pluginEntries,
                              INonPluginEntry[] nonPluginEntries)
Returns the total size of all files required for the specified plug-in and non-plug-in entries (the "logical" view).

Specified by:
getInstallSizeFor in interface IFeatureContentProvider
Parameters:
pluginEntries - an array of plug-in entries
nonPluginEntries - an array of non-plug-in entries
Returns:
total download size, or an indication that size could not be determined
See Also:
IFeatureContentProvider.getInstallSizeFor(IPluginEntry[], INonPluginEntry[])

getPathID

protected java.lang.String getPathID(IPluginEntry entry)
Returns the path identifier for a plugin entry. plugins/<pluginId>_<pluginVersion>.jar

Returns:
the path identifier

getPathID

protected java.lang.String getPathID(INonPluginEntry entry)
Returns the path identifer for a non plugin entry. features/<featureId>_<featureVersion>/<dataId>

Returns:
the path identifier

validatePermissions

protected void validatePermissions(ContentReference[] references)
Sets the permission of all the ContentReferences Check for the .permissions contentReference and use it to set the permissions of other ContentReference