Package org.eclipse.equinox.p2.engine
Interface IProfileRegistry
public interface IProfileRegistry
This encapsulates the access to the profile registry.
It deals with persistence in a transparent way.
- Since:
- 2.0
- Restriction:
- This interface is not intended to be implemented by clients.
- Restriction:
- This interface is not intended to be extended by clients.
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionaddProfile
(String id) Add the given profile to this profile registry.addProfile
(String id, Map<String, String> properties) Add the given profile to this profile registry.boolean
containsProfile
(String profileId) Returns whether this profile registry contains a profile with the given id.getProfile
(String id) Return the profile in the registry that has the given id.getProfile
(String id, long timestamp) Return the profile in the registry that has the given id and timestamp.IProfile[]
Return an array of profiles known to this registry.getProfileStateProperties
(String id, long timestamp) Return all properties for a particular profile state.getProfileStateProperties
(String id, String key) Return a map of profile timestamps to values for all profile states that contain the given property key.boolean
Check if the given profile from this profile registry is up-to-date.long[]
Return an array of timestamps in ascending order for the profile id in question.void
removeProfile
(String id) Remove the given profile from this profile registry.void
removeProfile
(String id, long timestamp) Remove the given profile snapshot from this profile registry.removeProfileStateProperties
(String id, long timestamp, Collection<String> keys) Remove all properties with matching keys from the given profile state.setProfileStateProperties
(String id, long timestamp, Map<String, String> properties) Set properties on a specific profile state.setProfileStateProperty
(String id, long timestamp, String key, String value) Set a specific property on a specific profile state.
-
Field Details
-
SELF
A special profile id representing the profile of the currently running system. This constant can be used when invokinggetProfile(String)
to obtain the profile of the currently running system. Note that a given profile registry may not have a defined self profile, for example if the running system doesn't have a profile, or resides in a different profile registry.- See Also:
-
SERVICE_NAME
Service name constant for the profile registry service.
-
-
Method Details
-
getProfile
Return the profile in the registry that has the given id. If it does not exist, then returnnull
.- Parameters:
id
- the profile identifier- Returns:
- the profile or
null
-
getProfile
Return the profile in the registry that has the given id and timestamp. If it does not exist, then returnnull
.- Parameters:
id
- the profile identifiertimestamp
- the profile's timestamp- Returns:
- the profile or
null
-
listProfileTimestamps
Return an array of timestamps in ascending order for the profile id in question. If there are none, then return an empty array.- Parameters:
id
- the id of the profile to list timestamps for- Returns:
- the array of timestamps
-
getProfiles
IProfile[] getProfiles()Return an array of profiles known to this registry. If there are none, then return an empty array.- Returns:
- the array of profiles
-
addProfile
Add the given profile to this profile registry.- Parameters:
id
- the profile id- Returns:
- the new empty profile
- Throws:
ProvisionException
- if a profile with the same id is already present in the registry.
-
addProfile
Add the given profile to this profile registry.- Parameters:
id
- the profile idproperties
- the profile properties- Returns:
- the new empty profile
- Throws:
ProvisionException
- if a profile with the same id is already present in the registry.
-
containsProfile
Returns whether this profile registry contains a profile with the given id.- Parameters:
profileId
- The id of the profile to search for- Returns:
true
if this registry contains a profile with the given id, andfalse
otherwise.
-
removeProfile
Remove the given profile snapshot from this profile registry. This method has no effect if this registry does not contain a profile with the given id and timestamp. The current profile cannot be removed using this method. When a particular profile state is removed from the registry, the corresponding profile state properties for that particular state are also removed.- Parameters:
id
- the profile to removetimestamp
- the timestamp of the profile to remove- Throws:
ProvisionException
- if the profile with the specified id and timestamp is the current profile.
-
removeProfile
Remove the given profile from this profile registry. This method has no effect if this registry does not contain a profile with the given id. When a profile is removed from the registry, all of its associated profile state properties are removed as well.- Parameters:
id
- the profile to remove
-
isCurrent
Check if the given profile from this profile registry is up-to-date.- Parameters:
profile
- the profile to check- Returns:
- boolean true if the profile is current; false otherwise.
-
setProfileStateProperties
Set properties on a specific profile state. Overwrite existing properties if present.- Parameters:
id
- the identifier of the profiletimestamp
- the timestamp of the profileproperties
- the properties to set on the profile- Returns:
- status object indicating success or failure
- Throws:
NullPointerException
- if either id or properties arenull
- Since:
- 2.1
-
setProfileStateProperty
Set a specific property on a specific profile state. Overwrite existing properties if present.Use of this method is discouraged if multiple properties will be set on the same state since the implementation of this method may access the file-system with each call. Callers should use
setProfileStateProperties(String, long, Map)
instead.- Parameters:
id
- the profile identifiertimestamp
- the timestamp of the profilekey
- the property key to setvalue
- the property value to set- Returns:
- status object indicating success or failure
- Throws:
NullPointerException
- if any of id, key or value isnull
- Since:
- 2.1
-
getProfileStateProperties
Return all properties for a particular profile state. Both the key and the values areString
. Return an empty map if there was a problem accessing the properties.There is no guarantee that all state timestamps returned will still exist in the registry since the user could delete profile states from the file system.
- Parameters:
id
- the profile identifiertimestamp
- the profile timestamp- Returns:
- a property map of key value pairs. An empty map if the profile state has no properties or does not exist
- Throws:
NullPointerException
- if profile id isnull
.- Since:
- 2.1
-
getProfileStateProperties
Return a map of profile timestamps to values for all profile states that contain the given property key. Both the key and value are of typeString
. Return an empty map if there was a problem accessing the properties.There is no guarantee that all state timestamps returned will still exist in the registry since the user could delete profile states from the file system.
- Parameters:
id
- the profile identifierkey
- the property key- Returns:
- A map of timestamp and values for the given key. An empty map if no states define the given key.
- Throws:
NullPointerException
- if the profile id or key isnull
.- Since:
- 2.1
-
removeProfileStateProperties
Remove all properties with matching keys from the given profile state. Non-existent keys are ignored. If the state does not exist the method performs a no-op and returns normally. If the keys parameter isnull
then remove all properties from the profile state.- Parameters:
id
- the profile identifiertimestamp
- the profile timestampkeys
- the property keys to remove, ornull
- Returns:
- a status object indicating success or failure
- Throws:
NullPointerException
- if the profile id isnull
.- Since:
- 2.1
-