public class BaseStorageHook extends Object implements StorageHook, AdaptorHook
Modifier and Type | Field and Description |
---|---|
static String |
COMPOSITE_BUNDLE |
static String |
COMPOSITE_HEADER |
static int |
DEL_BUNDLE_STORE |
static int |
DEL_GENERATION |
static String |
EXTERNAL_LIB_PREFIX |
static int |
HASHCODE |
static String |
KEY |
static String |
SURROGATE_BUNDLE |
static char |
VARIABLE_DELIM_CHAR |
static String |
VARIABLE_DELIM_STRING |
Constructor and Description |
---|
BaseStorageHook(BaseStorage storage) |
Modifier and Type | Method and Description |
---|---|
void |
addProperties(Properties properties)
Gets called by the adaptor during
FrameworkAdaptor.getProperties() . |
boolean |
compare(KeyedElement other)
Compares this element with a specified element
|
void |
copy(StorageHook storageHook)
Copies the data from the specified storage hook into this storage hook.
|
StorageHook |
create(BaseData bundledata)
Creates an uninitialized storage hook for the specified bundledata.
|
FrameworkLog |
createFrameworkLog()
Gets called by the adaptor during
FrameworkAdaptor.getFrameworkLog() . |
boolean |
forgetStartLevelChange(int startlevel)
Gets called by a base data during
BundleData.setStartLevel(int) . |
boolean |
forgetStatusChange(int status)
Gets called by a base data during
BundleData.setStatus(int) . |
void |
frameworkStart(BundleContext context)
Gets called by the adaptor during
FrameworkAdaptor.frameworkStart(BundleContext) . |
void |
frameworkStop(BundleContext context)
Gets called by the adaptor during
FrameworkAdaptor.frameworkStop(BundleContext) . |
void |
frameworkStopping(BundleContext context)
Gets called by the adaptor during
FrameworkAdaptor.frameworkStopping(BundleContext) . |
File |
getBundleStore() |
File |
getDataFile(String path) |
String |
getFileName() |
int |
getGeneration() |
Object |
getKey()
Returns the key for this element
|
int |
getKeyHashCode()
Returns the hash code of the key
|
Dictionary<String,String> |
getManifest(boolean firstLoad)
Returns the manifest for the data in this storage hook, or null if this hook does
not provide the manifest.
|
String[] |
getNativePaths() |
BaseStorage |
getStorage() |
int |
getStorageVersion()
Returns the storage version of this storage hook.
|
void |
handleRuntimeError(Throwable error)
Gets called by the adaptor during
FrameworkAdaptor.handleRuntimeError(Throwable) . |
void |
initialize(BaseAdaptor adaptor)
Gets called by the adaptor during
FrameworkAdaptor.initialize(EventPublisher) . |
void |
initialize(Dictionary<String,String> manifest)
Initializes this storage hook with the content of the specified bundle manifest.
|
void |
installNativePaths(String[] installPaths) |
boolean |
isReference() |
StorageHook |
load(BaseData target,
DataInputStream in)
Creates a new storage hook and loads the data from the specified
input stream into the storage hook.
|
URLConnection |
mapLocationToURLConnection(String location)
Gets called by the adaptor during
FrameworkAdaptor.mapLocationToURLConnection(String) . |
void |
save(DataOutputStream out)
Saves the data from this storage hook into the specified output stream.
|
void |
setFileName(String fileName) |
void |
setReference(boolean reference) |
static String |
substituteVars(String path) |
void |
validate()
Validates the data in this storage hook, if the data is invalid then an illegal state
exception is thrown
|
void |
validateNativePaths(String[] paths) |
public static final String KEY
public static final int HASHCODE
public static final int DEL_BUNDLE_STORE
public static final int DEL_GENERATION
public static final String EXTERNAL_LIB_PREFIX
public static final String VARIABLE_DELIM_STRING
public static final char VARIABLE_DELIM_CHAR
public static String COMPOSITE_HEADER
public static String COMPOSITE_BUNDLE
public static String SURROGATE_BUNDLE
public BaseStorageHook(BaseStorage storage)
public int getStorageVersion()
StorageHook
getStorageVersion
in interface StorageHook
public StorageHook create(BaseData bundledata) throws BundleException
StorageHook
StorageHook.initialize(Dictionary)
method called to initialize the storage hook.create
in interface StorageHook
bundledata
- a base data the created storage hook will be associated withBundleException
public void initialize(Dictionary<String,String> manifest) throws BundleException
StorageHook
initialize
in interface StorageHook
manifest
- the bundle manifest to load into this storage hookBundleException
- if any error occursStorageHook.create(BaseData)
,
StorageHook.copy(StorageHook)
public StorageHook load(BaseData target, DataInputStream in) throws IOException
StorageHook
It is important that this method and the StorageHook.save(DataOutputStream)
method
stay in sync. This method must be able to successfully read the data saved by the
StorageHook.save(DataOutputStream)
method.
load
in interface StorageHook
target
- a base data the loaded storage hook will be associated within
- an input stream used to load the storage hook's data from.IOException
- if any error occursStorageHook.save(DataOutputStream)
public void save(DataOutputStream out) throws IOException
StorageHook
It is important that this method and the StorageHook.load(BaseData, DataInputStream)
method stay in sync. This method must be able to save data which the
StorageHook.load(BaseData, DataInputStream)
method can ready successfully.
save
in interface StorageHook
out
- an output stream used to save the storage hook's data from.IOException
- if any error occursStorageHook.load(BaseData, DataInputStream)
public int getKeyHashCode()
KeyedElement
getKeyHashCode
in interface KeyedElement
public boolean compare(KeyedElement other)
KeyedElement
compare
in interface KeyedElement
other
- the element to compare withpublic Object getKey()
KeyedElement
getKey
in interface KeyedElement
public String getFileName()
public int getGeneration()
public String[] getNativePaths()
public void installNativePaths(String[] installPaths) throws BundleException
BundleException
public void validateNativePaths(String[] paths) throws BundleException
BundleException
public boolean isReference()
public File getBundleStore()
public void setReference(boolean reference)
public void setFileName(String fileName)
public void copy(StorageHook storageHook)
StorageHook
StorageHook.initialize(Dictionary)
method.copy
in interface StorageHook
storageHook
- the original storage hook to copy data out of.StorageHook.create(BaseData)
,
StorageHook.initialize(Dictionary)
public void validate() throws IllegalArgumentException
StorageHook
validate
in interface StorageHook
IllegalArgumentException
- if the data is invalidpublic Dictionary<String,String> getManifest(boolean firstLoad) throws BundleException
StorageHook
getManifest
in interface StorageHook
firstLoad
- true if this is the very first time this manifest is being loaded.BundleException
public boolean forgetStatusChange(int status)
StorageHook
BundleData.setStatus(int)
.
A base data will call this method for each configured storage hook it
is associated with until one storage hook returns true. If all configured storage
hooks return false then the BaseData will be marked dirty and will cause the
status to be persistently saved.forgetStatusChange
in interface StorageHook
status
- the new status of the base datapublic boolean forgetStartLevelChange(int startlevel)
StorageHook
BundleData.setStartLevel(int)
.
A base data will call this method for each configured storage hook it
is associated with until one storage hook returns true. If all configured storage
hooks return false then the BaseData will be marked dirty and will cause the
start level to be persistently saved.forgetStartLevelChange
in interface StorageHook
startlevel
- the new startlevel of the base datapublic void initialize(BaseAdaptor adaptor)
AdaptorHook
FrameworkAdaptor.initialize(EventPublisher)
.
This method allows an adaptor hook to save the adaptor object for later.initialize
in interface AdaptorHook
adaptor
- the adaptor object associated with this AdaptorHook.public void frameworkStart(BundleContext context) throws BundleException
AdaptorHook
FrameworkAdaptor.frameworkStart(BundleContext)
.
This method allows an adaptor hook to execute code when the framework is starting
(e.g. to register services).frameworkStart
in interface AdaptorHook
context
- the system bundle contextBundleException
public void frameworkStop(BundleContext context) throws BundleException
AdaptorHook
FrameworkAdaptor.frameworkStop(BundleContext)
.
This method allows an adaptor hook to execute code when the framework is stopped
(e.g. to unregister services).frameworkStop
in interface AdaptorHook
context
- the system bundle contextBundleException
public void frameworkStopping(BundleContext context)
AdaptorHook
FrameworkAdaptor.frameworkStopping(BundleContext)
.
This method allows an adaptor hook to execute code when the framework is about to start
the shutdown process.frameworkStopping
in interface AdaptorHook
context
- the system bundle contextpublic void addProperties(Properties properties)
AdaptorHook
FrameworkAdaptor.getProperties()
.
This method allows an adaptor hook to add property values to the adaptor
properties object.addProperties
in interface AdaptorHook
properties
- the adaptor properties object.public URLConnection mapLocationToURLConnection(String location) throws IOException
AdaptorHook
FrameworkAdaptor.mapLocationToURLConnection(String)
.
The adaptor will call this method for each configured adaptor hook until one
adaptor hook returns a non-null value. If no adaptor hook returns a non-null value
then the adaptor will perform the default behavior.mapLocationToURLConnection
in interface AdaptorHook
location
- a bundle location string to be converted to a URLConnectionIOException
- if an error occured creating the URLConnectionpublic void handleRuntimeError(Throwable error)
AdaptorHook
FrameworkAdaptor.handleRuntimeError(Throwable)
.
The adaptor will call this method for each configured adaptor hook.handleRuntimeError
in interface AdaptorHook
error
- the unexpected error that occured.public FrameworkLog createFrameworkLog()
AdaptorHook
FrameworkAdaptor.getFrameworkLog()
.
The adaptor will call this method for each configured adaptor hook until one
adaptor hook returns a non-null value. If no adaptor hook returns a non-null value
then the adaptor will return null.createFrameworkLog
in interface AdaptorHook
public BaseStorage getStorage()
Copyright © 2007–2018 The Apache Software Foundation. All rights reserved.