use of org.eclipse.jdt.internal.ui.preferences.cleanup.CleanUpProfileVersioner in project eclipse-cs by checkstyle.
the class FormatterConfigWriter method writeCleanupSettings.
private void writeCleanupSettings(final Map<String, String> settings) {
PreferencesAccess access = PreferencesAccess.getOriginalPreferences();
IScopeContext instanceScope = access.getInstanceScope();
IScopeContext scope = access.getProjectScope(mProject);
IProfileVersioner versioner = new CleanUpProfileVersioner();
ProfileStore profilesStore = new ProfileStore(CleanUpConstants.CLEANUP_PROFILES, versioner);
try {
List<Profile> profiles = profilesStore.readProfiles(instanceScope);
if (profiles == null) {
profiles = new ArrayList<Profile>();
}
profiles.addAll(CleanUpPreferenceUtil.getBuiltInProfiles());
ProfileManager manager = new CleanUpProfileManager(profiles, scope, access, versioner);
CustomProfile myProfile = (CustomProfile) manager.getProfile(ProfileManager.ID_PREFIX + mNewProfileName);
if (myProfile == null) {
// take current settings and create new profile
Profile current = manager.getSelected();
myProfile = new CustomProfile(mNewProfileName, current.getSettings(), versioner.getCurrentVersion(), versioner.getProfileKind());
manager.addProfile(myProfile);
}
Map<String, String> joinedSettings = myProfile.getSettings();
joinedSettings.putAll(settings);
myProfile.setSettings(joinedSettings);
manager.setSelected(myProfile);
// writes profiles to the workspace profile store
profilesStore.writeProfiles(manager.getSortedProfiles(), instanceScope);
// commits changes to the project profile settings
manager.commitChanges(scope);
scope.getNode(JDT_UI_PLUGINID).flush();
scope.getNode(JavaCore.PLUGIN_ID).flush();
if (scope != instanceScope) {
instanceScope.getNode(JDT_UI_PLUGINID).flush();
instanceScope.getNode(JavaCore.PLUGIN_ID).flush();
}
} catch (CoreException e) {
CheckstyleLog.log(e, "Error storing cleanup profile");
} catch (BackingStoreException e) {
CheckstyleLog.log(e, "Error storing cleanup profile");
}
}
Aggregations