Package org.eclipse.m2m.atl.adt.ui.preferences

# Class ProfileManager

java.lang.Object
java.util.Observable
org.eclipse.m2m.atl.adt.ui.preferences.ProfileManager

Direct Known Subclasses:
  `AtlCodeFormatterProfileManager`

public abstract class ProfileManager extends Observable
The model for the set of profiles which are available in the workbench.

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static final class`
`ProfileManager.BuiltInProfile`
Represents a built-in profile.
`static class`
`ProfileManager.CustomProfile`
Represents a user-defined profile.
`static final class`
`ProfileManager.KeySet`
`static class`
`ProfileManager.Profile`
Represents a profile with a unique ID, a name and a map containing the code formatter settings.
`final class`
`ProfileManager.SharedProfile`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ID_PREFIX`
A prefix which is prepended to every ID of a user-defined profile, in order to differentiate it from a built-in profile.
`static final int`
`PROFILE_CREATED_EVENT`
`static final int`
`PROFILE_DELETED_EVENT`
`static final int`
`PROFILE_RENAMED_EVENT`
`static final int`
`SELECTION_CHANGED_EVENT`
The possible events for observers listening to this class.
`static final int`
`SETTINGS_CHANGED_EVENT`

## Constructor Summary

Constructors
Constructor
Description
`ProfileManager(List<ProfileManager.Profile> profiles, org.eclipse.core.runtime.preferences.IScopeContext context, PreferencesAccess preferencesAccess, ProfileManager.KeySet[] keySets, String profileKey)`
Create and initialize a new profile manager.

## Method Summary

Modifier and Type
Method
Description
`void`
`addProfile(ProfileManager.CustomProfile profile)`
Add a new custom profile to this profile manager.
`void`
`clearAllSettings(org.eclipse.core.runtime.preferences.IScopeContext context)`
`void`
`commitChanges(org.eclipse.core.runtime.preferences.IScopeContext scopeContext)`
Activate the selected profile, update all necessary options in preferences and save profiles to disk.
`boolean`
`containsName(String name)`
Check whether a user-defined profile in this profile manager already has this name.
`boolean`
`deleteProfile(ProfileManager.CustomProfile profile)`
`boolean`
`deleteSelected()`
Delete the currently selected profile from this profile manager.
`abstract ProfileManager.Profile`
`getDefaultProfile()`
`ProfileManager.Profile`
`getProfile(String ID)`
Get the profile for this profile id.
`ProfileManager.Profile`
`getSelected()`
Get the currently selected profile.
`protected String`
`getSelectedProfileId(org.eclipse.core.runtime.preferences.IScopeContext instanceScope)`
`String[]`
`getSortedDisplayNames()`
Get the names of all profiles stored in this profile manager, sorted alphabetically.
`List<ProfileManager.Profile>`
`getSortedProfiles()`
Get an immutable list as view on all profiles, sorted alphabetically.
`boolean`
`hasProjectSpecificSettings(org.eclipse.core.runtime.preferences.IScopeContext context)`
`static boolean`
`hasProjectSpecificSettings(org.eclipse.core.runtime.preferences.IScopeContext context, ProfileManager.KeySet[] keySets)`
`protected void`
`notifyObservers(int message)`
Notify observers with a message.
`void`
`profileChanged(ProfileManager.CustomProfile profile)`
`void`
`profileRenamed(ProfileManager.CustomProfile profile, String oldID)`
`void`
`profileReplaced(ProfileManager.CustomProfile oldProfile, ProfileManager.CustomProfile newProfile)`
`void`
`setSelected(ProfileManager.Profile profile)`
Set the selected profile.
`protected void`
`updateProfilesWithName(String oldName, ProfileManager.Profile newProfile, boolean applySettings)`

### Methods inherited from class java.util.Observable

`addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### ID_PREFIX

public static final String ID_PREFIX
A prefix which is prepended to every ID of a user-defined profile, in order to differentiate it from a built-in profile.

See Also:
  - Constant Field Values

### SELECTION_CHANGED_EVENT

public static final int SELECTION_CHANGED_EVENT
The possible events for observers listening to this class.

See Also:
  - Constant Field Values

### PROFILE_DELETED_EVENT

public static final int PROFILE_DELETED_EVENT

See Also:
  - Constant Field Values

### PROFILE_RENAMED_EVENT

public static final int PROFILE_RENAMED_EVENT

See Also:
  - Constant Field Values

### PROFILE_CREATED_EVENT

public static final int PROFILE_CREATED_EVENT

See Also:
  - Constant Field Values

### SETTINGS_CHANGED_EVENT

public static final int SETTINGS_CHANGED_EVENT

See Also:
  - Constant Field Values

## Constructor Details

### ProfileManager

public ProfileManager(List<ProfileManager.Profile> profiles, org.eclipse.core.runtime.preferences.IScopeContext context, PreferencesAccess preferencesAccess, ProfileManager.KeySet[] keySets, String profileKey)
Create and initialize a new profile manager.

Parameters:
  `profiles` - Initial custom profiles (List of type `CustomProfile`)

## Method Details

### getSelectedProfileId

protected String getSelectedProfileId(org.eclipse.core.runtime.preferences.IScopeContext instanceScope)

### notifyObservers

protected void notifyObservers(int message)
Notify observers with a message. The message must be one of the following:

Parameters:
  `message` - Message to send out
See Also:
  - `SELECTION_CHANGED_EVENT`
  - `PROFILE_DELETED_EVENT`
  - `PROFILE_RENAMED_EVENT`
  - `PROFILE_CREATED_EVENT`
  - `SETTINGS_CHANGED_EVENT`

### hasProjectSpecificSettings

public static boolean hasProjectSpecificSettings(org.eclipse.core.runtime.preferences.IScopeContext context, ProfileManager.KeySet[] keySets)

### hasProjectSpecificSettings

public boolean hasProjectSpecificSettings(org.eclipse.core.runtime.preferences.IScopeContext context)

### getSortedProfiles

public List<ProfileManager.Profile> getSortedProfiles()
Get an immutable list as view on all profiles, sorted alphabetically. Unless the set of profiles has been modified between the two calls, the sequence is guaranteed to correspond to the one returned by `getSortedNames`.

Returns:
  a list of elements of type `Profile`
See Also:
  - `getSortedDisplayNames()`

### getSortedDisplayNames

public String[] getSortedDisplayNames()
Get the names of all profiles stored in this profile manager, sorted alphabetically. Unless the set of profiles has been modified between the two calls, the sequence is guaranteed to correspond to the one returned by `getSortedProfiles`.

Returns:
  All names, sorted alphabetically
See Also:
  - `getSortedProfiles()`

### getProfile

public ProfileManager.Profile getProfile(String ID)
Get the profile for this profile id.

Parameters:
  `ID` - The profile ID
Returns:
  The profile with the given ID or `null`

### commitChanges

public void commitChanges(org.eclipse.core.runtime.preferences.IScopeContext scopeContext)
Activate the selected profile, update all necessary options in preferences and save profiles to disk.

### clearAllSettings

public void clearAllSettings(org.eclipse.core.runtime.preferences.IScopeContext context)

### getSelected

public ProfileManager.Profile getSelected()
Get the currently selected profile.

Returns:
  The currently selected profile.

### setSelected

public void setSelected(ProfileManager.Profile profile)
Set the selected profile. The profile must already be contained in this profile manager.

Parameters:
  `profile` - The profile to select

### containsName

public boolean containsName(String name)
Check whether a user-defined profile in this profile manager already has this name.

Parameters:
  `name` - The name to test for
Returns:
  Returns `true` if a profile with the given name exists

### addProfile

public void addProfile(ProfileManager.CustomProfile profile)
Add a new custom profile to this profile manager.

Parameters:
  `profile` - The profile to add

### deleteSelected

public boolean deleteSelected()
Delete the currently selected profile from this profile manager. The next profile in the list is selected.

Returns:
  true if the profile has been successfully removed, false otherwise.

### deleteProfile

public boolean deleteProfile(ProfileManager.CustomProfile profile)

### profileRenamed

public void profileRenamed(ProfileManager.CustomProfile profile, String oldID)

### profileReplaced

public void profileReplaced(ProfileManager.CustomProfile oldProfile, ProfileManager.CustomProfile newProfile)

### profileChanged

public void profileChanged(ProfileManager.CustomProfile profile)

### updateProfilesWithName

protected void updateProfilesWithName(String oldName, ProfileManager.Profile newProfile, boolean applySettings)

### getDefaultProfile

public abstract ProfileManager.Profile getDefaultProfile()