### Eclipse Workspace Patch 1.0 #P org.eclipse.jdt.core Index: plugin.xml =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/plugin.xml,v retrieving revision 1.82 diff -u -r1.82 plugin.xml --- plugin.xml 4 Nov 2005 18:06:53 -0000 1.82 +++ plugin.xml 21 Jan 2006 22:20:36 -0000 @@ -163,7 +163,18 @@ - + + + + + + + + + + Index: formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java,v retrieving revision 1.11 diff -u -r1.11 CodeFormatter.java --- formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java 23 Mar 2005 21:40:56 -0000 1.11 +++ formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java 21 Jan 2006 22:20:36 -0000 @@ -79,7 +79,7 @@ * level of zero or below has no effect. * @param lineSeparator the line separator to use in formatted source, * if set to null, then the platform default one will be used. - * @return the text edit + * @return the text edit or null if the given string cannot be formatted. * @throws IllegalArgumentException if offset is lower than 0, length is lower than 0 or * length is greater than source length. */ Index: formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java =================================================================== RCS file: formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java diff -N formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ formatter/org/eclipse/jdt/core/formatter/ProfileVersionNumbers.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,24 @@ +package org.eclipse.jdt.core.formatter; + +/* + * These numbers need to be here so that the formatter application can check if + * the specified formatter config file is compatible. + * + */ +public class ProfileVersionNumbers { + + private ProfileVersionNumbers() { /* shouldn't be instantiated */ } + + public static final int VERSION_1= 1; // < 20040113 (includes M6) + public static final int VERSION_2= 2; // before renaming almost all + public static final int VERSION_3= 3; // after renaming almost all + public static final int VERSION_4= 4; + public static final int VERSION_5= 5; // after splitting of FORMATTER_INDENT_BLOCK_STATEMENTS + public static final int VERSION_6= 6; // after splitting of new_line_in_control_statements + public static final int VERSION_7= 7; // after moving comment formatter to JDT Core + public static final int VERSION_8= 8; // fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=89739 + public static final int VERSION_9= 9; // after storing project profile names in preferences + + public static final int CURRENT_VERSION= VERSION_9; + +} Index: formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties =================================================================== RCS file: formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties diff -N formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ formatter/org/eclipse/jdt/core/formatter/FormatterAppMessages.properties 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,43 @@ +/******************************************************************************* + * Copyright (c) 2004 Ben Konrath + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Ben Konrath - initial implementation + *******************************************************************************/ + +CommandLine.start=Starting format job ... +CommandLine.done=Done. +CommandLine.config.file=Configuration Name: {0} +CommandLine.formatting=Formatting: {0} + +CommandLine.usage=Usage: {0} [ OPTIONS ] + +CommandLine.files= +CommandLine.files.msg1=Java source files and/or directories to format. +CommandLine.files.msg2=Only files ending with {0} will be formatted in the given directory. + +CommandLine.options=OPTIONS: +CommandLine.config={0} +CommandLine.config.msg1=Use the formatting style from the specified config file. +CommandLine.config.msg2=This file must be an xml file that has been exported by Eclipse 3.0. +CommandLine.help=Display this message. +CommandLine.quiet=Only print error messages. +CommandLine.verbose=Be verbose about the formatting job. + +CommandLineError.file={0} does not exsit. Please specify only valid Java Source files. +CommandLineError.config=There was problem reading the config file, {0}. +CommandLineError.file.dir=You must specify at least one file or dirctory to format. +CommandLineError.quiet.verbose=You cannot use the options {0} and {1} together. + +Exception.io=Caught IOExecption: +Exception.bad.location=Caught BadLocationException: +Exception.skip=Skipping File. + +ConfigFile.reading.error=Error Reading config file. + +Edit.problem=The Eclipse formatter had a problem {0}, Skipping. + Index: formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java =================================================================== RCS file: formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java diff -N formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ formatter/org/eclipse/jdt/core/formatter/CodeFormatterApplication.java 1 Jan 1970 00:00:00 -0000 @@ -0,0 +1,422 @@ +/******************************************************************************* + * Copyright (c) 2004 Ben Konrath + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Ben Konrath - initial implementation + * Red Hat Incorporated - add ProfileVersionNumbers.CURRENT_VERSION + *******************************************************************************/ + +package org.eclipse.jdt.core.formatter; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.Writer; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; +import java.util.MissingResourceException; +import java.util.ResourceBundle; + +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.parsers.SAXParser; +import javax.xml.parsers.SAXParserFactory; + +import org.eclipse.core.runtime.IPlatformRunnable; +import org.eclipse.core.runtime.Platform; +import org.eclipse.jdt.core.ToolFactory; +import org.eclipse.jdt.internal.core.util.Util; +import org.eclipse.jface.text.BadLocationException; +import org.eclipse.jface.text.Document; +import org.eclipse.jface.text.IDocument; +import org.eclipse.text.edits.TextEdit; +import org.xml.sax.Attributes; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; +import org.xml.sax.helpers.DefaultHandler; + +/** + * Class that handles the org.eclipse.jdt.core.JavaCodeFormatter the + * application. The map file reading code is based on code in ProfileStore.java + * (org.eclipse.jdf.ui). + * + * There are a couple improvements that could be made: + * 1. Add an import clean up option (requires stuff from org.eclipse.jdt.ui). + * 2. Make a list of all the files first so that a file does not get formatted twice. + * 3. Use a text based progress monitor for output. + * 4. Allow using/updating older versions of the formatter config file. This requires + * a largish refactor because ProfilerVersioner is tied to the + * org.eclipse.jdt.internal.ui.preferences code which is tied to several UI plugins. + * + * @author Ben Konrath + */ +public class CodeFormatterApplication implements IPlatformRunnable { + + /** + * A SAX event handler to parse the config xml. + */ + private final static class ConfigHandler extends DefaultHandler { + + /** + * Identifiers for the XML file. + */ + private final String XML_NODE_ROOT = "profiles"; //$NON-NLS-1$ + + private final String XML_NODE_PROFILE = "profile"; //$NON-NLS-1$ + + private final String XML_NODE_SETTING = "setting"; //$NON-NLS-1$ + + private final String XML_ATTRIBUTE_VERSION = "version"; //$NON-NLS-1$ + + private final String XML_ATTRIBUTE_ID = "id"; //$NON-NLS-1$ + + private final String XML_ATTRIBUTE_NAME = "name"; //$NON-NLS-1$ + + private final String XML_ATTRIBUTE_VALUE = "value"; //$NON-NLS-1$ + + private int fVersion; + + private String fName; + + private Map fSettings; + + public void startElement(String uri, String localName, String qName, + Attributes attributes) throws SAXException { + + if (qName.equals(XML_NODE_SETTING)) { + + final String key = attributes.getValue(XML_ATTRIBUTE_ID); + final String value = attributes.getValue(XML_ATTRIBUTE_VALUE); + fSettings.put(key, value); + + } else if (qName.equals(XML_NODE_PROFILE)) { + + fName = attributes.getValue(XML_ATTRIBUTE_NAME); + fSettings = new HashMap(200); + + } else if (qName.equals(XML_NODE_ROOT)) { + + try { + fVersion = Integer.parseInt(attributes + .getValue(XML_ATTRIBUTE_VERSION)); + } catch (NumberFormatException ex) { + throw new SAXException(ex); + } + + } + } + + public Map getSettings() { + return fSettings; + } + + public int getVersion() { + return fVersion; + } + + public String getName() { + return fName; + } + + } + + /** + * Deals with the messages in the properties file (cut n' pasted from a + * generated class). + */ + private final static class FormatterAppMessages { + private static final String BUNDLE_NAME = "org.eclipse.jdt.core.formatter.FormatterAppMessages";//$NON-NLS-1$ + + private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle + .getBundle(BUNDLE_NAME); + + public static String getString(String key) { + try { + return RESOURCE_BUNDLE.getString(key); + } catch (MissingResourceException e) { + return '!' + key + '!'; + } + } + + public static String getFormattedString(String key, String arg) { + return getFormattedString(key, new String[] { arg }); + } + + public static String getFormattedString(String key, String[] args) { + return MessageFormat.format(getString(key), args); + } + } + + /** + * Read the xml config file and return a Map representing the options that + * are in the specified config file. + */ + public Map readConfig(String filename) { + + try { + final FileInputStream reader = new FileInputStream(new File( + filename)); + final ConfigHandler handler = new ConfigHandler(); + + try { + InputSource inputSource = new InputSource(reader); + final SAXParserFactory factory = SAXParserFactory.newInstance(); + final SAXParser parser = factory.newSAXParser(); + parser.parse(inputSource, handler); + if (handler.getVersion() != ProfileVersionNumbers.CURRENT_VERSION) + return null; + configName = handler.getName(); + return handler.getSettings(); + + } finally { + try { reader.close(); } catch (IOException e) { /* ignore */ } + } + + } catch (IOException e) { + Util.log(e, FormatterAppMessages + .getString("ConfigFile.reading.error")); //$NON-NLS-1$ + } catch (SAXException e) { + Util.log(e, FormatterAppMessages + .getString("ConfigFile.reading.error")); //$NON-NLS-1$ + } catch (ParserConfigurationException e) { + Util.log(e, FormatterAppMessages + .getString("ConfigFile.reading.error")); //$NON-NLS-1$ + } + return null; + } + + /** + * Runs the Java code formatter application + */ + public Object run(Object args) throws Exception { + + ArrayList fileList = processCommandLine((String[]) args); + + // nothing to do + if (fileList == null || fileList.isEmpty()) + return EXIT_OK; + + if (!quiet) { + if (configName != null) + System.out.println(FormatterAppMessages.getFormattedString("CommandLine.config.file", configName)); //$NON-NLS-1$ + System.out.println(FormatterAppMessages.getString("CommandLine.start")); //$NON-NLS-1$ + } + + // format the list of files and/or directories + while (!fileList.isEmpty()) { + File file = (File) fileList.remove(0); + + if (file.isDirectory()) + formatDirTree(file); + else + formatFile(file); + } + + if (!quiet) { + System.out.println(FormatterAppMessages.getString("CommandLine.done")); //$NON-NLS-1$ + } + + return EXIT_OK; + } + + private void displayHelp(String message) { + System.err.println(message); + System.out.println(""); //$NON-NLS-1$ + displayHelp(); + } + + private String configName; + + /* + * The output will look like this: + * + * "Usage: eclipse -application org.eclipse.jdt.core.JavaCodeFormatter [ OPTIONS ] + * Java source files and/or directories to format. + * Only files ending with .java will be formatted in the given directory. + * OPTIONS: + * -config Use the formatting style from the specified config file. + * This file must be an xml file that has been exported by Eclipse 3.0. + * -help Display this message. + * -quiet Only print error messages. + * -verbose Be verbose about the formatting job. + */ + private void displayHelp() { + String binaryName = Platform.getOS().equals(Platform.OS_WIN32) ? "eclipse.exe" : "eclipse"; //$NON-NLS-1$ //$NON-NLS-2$ + + // this is UG-LY. is there a way to make this look nicer? + System.out.println(FormatterAppMessages.getFormattedString("CommandLine.usage", //$NON-NLS-1$ + binaryName + " -application org.eclipse.jdt.core.JavaCodeFormatter")); //$NON-NLS-1$ + System.out.println(""); //$NON-NLS-1$ + + System.out.println(" " + FormatterAppMessages.getString("CommandLine.files") //$NON-NLS-1$ //$NON-NLS-2$ + + "\t" + FormatterAppMessages.getString("CommandLine.files.msg1")); //$NON-NLS-1$ //$NON-NLS-2$ + System.out.println("\t\t" //$NON-NLS-1$ + + FormatterAppMessages.getFormattedString("CommandLine.files.msg2", ".java")); //$NON-NLS-1$ //$NON-NLS-2$ + + System.out.println(FormatterAppMessages.getString("CommandLine.options")); //$NON-NLS-1$ + System.out.println(" " + FormatterAppMessages.getFormattedString("CommandLine.config", ARG_CONFIG) //$NON-NLS-1$ //$NON-NLS-2$ + + "\t" + FormatterAppMessages.getString("CommandLine.config.msg1")); //$NON-NLS-1$ //$NON-NLS-2$ + System.out.println("\t\t\t" + FormatterAppMessages.getString("CommandLine.config.msg2")); //$NON-NLS-1$ //$NON-NLS-2$ + System.out.println(" " + ARG_HELP + "\t\t" + FormatterAppMessages.getString("CommandLine.help")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + System.out.println(" " + ARG_QUIET + "\t\t" + FormatterAppMessages.getString("CommandLine.quiet")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + System.out.println(" " + ARG_VERBOSE +"\t\t" + FormatterAppMessages.getString("CommandLine.verbose")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + } + + private final String ARG_HELP = "-help"; //$NON-NLS-1$ + private final String ARG_CONFIG = "-config"; //$NON-NLS-1$ + private final String ARG_VERBOSE = "-verbose"; //$NON-NLS-1$ + private final String ARG_QUIET = "-quiet"; //$NON-NLS-1$ + private boolean verbose = false; + private boolean quiet = false; + + private ArrayList processCommandLine(String[] argsArray) { + + ArrayList args = new ArrayList(); + for (int i = 0; i < argsArray.length; i++) { + args.add(argsArray[i]); + } + + // look for flag-like args + if (args.remove(ARG_HELP)) { + displayHelp(); + return null; + } + if (args.remove(ARG_VERBOSE)) + verbose = true; + if (args.remove(ARG_QUIET)) + quiet = true; + + if (quiet && verbose) { + displayHelp(FormatterAppMessages.getFormattedString + ("CommandLineError.quiet.verbose", new String[] {ARG_QUIET, ARG_VERBOSE})); //$NON-NLS-1$ + return null; + } + args.remove("-pdelaunch"); //$NON-NLS-1$ + + // look for flag/param args + int index = args.indexOf(ARG_CONFIG); + if (index >= 0) { + args.remove(index); + String configFile = (String) args.remove(index); + options = readConfig(configFile); + if (options == null) { + displayHelp(FormatterAppMessages + .getFormattedString("CommandLineError.config", configFile)); //$NON-NLS-1$ + return null; + } + } + + // only the files and directories should remain + ArrayList fileList = new ArrayList(); + while (!args.isEmpty()) { + String fileName = (String) args.remove(0); + File file = new File(fileName); + if (file.exists()) { + fileList.add(file); + } else { + displayHelp(FormatterAppMessages + .getFormattedString("CommandLineError.file", fileName)); //$NON-NLS-1$ + return null; + } + } + + if (fileList.isEmpty()) + displayHelp(FormatterAppMessages.getString("CommandLineError.file.dir")); //$NON-NLS-1$ + + return fileList; + } + + /** + * Recursively format the Java source code that is contained in the + * directory rooted at dir. + */ + private void formatDirTree(File dir) { + + File[] files = dir.listFiles(); + if (files == null) + return; + + for (int i = 0; i < files.length; i++) { + File file = files[i]; + if (file.isDirectory()) { + formatDirTree(file); + } else if (file.getPath().endsWith(".java")) { //$NON-NLS-1$ + formatFile(file); + } + } + } + + // internal representation of configuration options in the xml file + private Map options = null; + + /** + * Format the given Java source file. + */ + private void formatFile(File file) { + + IDocument doc = new Document(); + try { + // read the file + final BufferedReader in = new BufferedReader(new FileReader(file)); + if (verbose) { + System.out.println(FormatterAppMessages.getFormattedString + ("CommandLine.formatting", file.getName())); //$NON-NLS-1$ + } + String line; + String contents = ""; //$NON-NLS-1$ + try { + while ((line = in.readLine()) != null) + contents = contents + + System.getProperty("line.separator") + line; //$NON-NLS-1$ + } finally { + try { in.close(); } catch (IOException e) { /* ignore */ } + } + + // format the file (the meat and potatoes) + doc.set(contents); + TextEdit edit = ToolFactory.createCodeFormatter(options).format( + CodeFormatter.K_COMPILATION_UNIT, doc.get(), 0, + doc.getLength(), 0, null); + if (edit != null) { + edit.apply(doc); + } else { + System.err.println + (FormatterAppMessages.getFormattedString("Edit.problem", file.getName())); //$NON-NLS-1$ + return; + } + + // write the file + final Writer out = new BufferedWriter(new FileWriter(file, false)); + try { + out.write(doc.get()); + out.flush(); + } finally { + try { out.close(); } catch (IOException e) { /* ignore */ } + } + + } catch (IOException e) { + String errorMessage = FormatterAppMessages.getString("Exception.io") + " " //$NON-NLS-1$ //$NON-NLS-2$ + + e.getLocalizedMessage(); + Util.log(e, errorMessage); + System.err.println(errorMessage); + System.err.println(FormatterAppMessages.getString("Exception.skip")); //$NON-NLS-1$ + + } catch (BadLocationException e) { + String errorMessage = FormatterAppMessages.getString("Exception.bad.location") + " " //$NON-NLS-1$ //$NON-NLS-2$ + + e.getLocalizedMessage(); + Util.log(e, errorMessage); + System.err.println(errorMessage); + System.err.println(FormatterAppMessages.getString("Exception.skip")); //$NON-NLS-1$ + } + } + +} #P org.eclipse.jdt.ui Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java,v retrieving revision 1.21 diff -u -r1.21 ProfileStore.java --- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java 6 Oct 2005 15:41:04 -0000 1.21 +++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileStore.java 21 Jan 2006 22:20:40 -0000 @@ -50,6 +50,7 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; import org.eclipse.jdt.ui.JavaUI; @@ -177,7 +178,7 @@ } IEclipsePreferences uiPreferences = instanceScope.getNode(JavaUI.ID_PLUGIN); uiPreferences.put(PREF_FORMATTER_PROFILES, val); - uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersioner.CURRENT_VERSION); + uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersionNumbers.CURRENT_VERSION); } finally { try { stream.close(); } catch (IOException e) { /* ignore */ } } @@ -324,7 +325,7 @@ final Document document= builder.newDocument(); final Element rootElement = document.createElement(XML_NODE_ROOT); - rootElement.setAttribute(XML_ATTRIBUTE_VERSION, Integer.toString(ProfileVersioner.CURRENT_VERSION)); + rootElement.setAttribute(XML_ATTRIBUTE_VERSION, Integer.toString(ProfileVersionNumbers.CURRENT_VERSION)); document.appendChild(rootElement); @@ -381,7 +382,7 @@ IScopeContext instanceScope= access.getInstanceScope(); IEclipsePreferences uiPreferences= instanceScope.getNode(JavaUI.ID_PLUGIN); int version= uiPreferences.getInt(PREF_FORMATTER_PROFILES_VERSION, 0); - if (version >= ProfileVersioner.CURRENT_VERSION) { + if (version >= ProfileVersionNumbers.CURRENT_VERSION) { return; // is up to date } try { @@ -393,7 +394,7 @@ if (manager.getSelected() instanceof CustomProfile) { manager.commitChanges(instanceScope); // updates JavaCore options } - uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersioner.CURRENT_VERSION); + uiPreferences.putInt(PREF_FORMATTER_PROFILES_VERSION, ProfileVersionNumbers.CURRENT_VERSION); savePreferences(instanceScope); IProject[] projects= ResourcesPlugin.getWorkspace().getRoot().getProjects(); Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java,v retrieving revision 1.24 diff -u -r1.24 ProfileManager.java --- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java 7 Oct 2005 07:31:14 -0000 1.24 +++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileManager.java 21 Jan 2006 22:20:40 -0000 @@ -28,6 +28,7 @@ import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; +import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; import org.eclipse.jdt.internal.corext.util.Messages; @@ -63,7 +64,7 @@ public abstract void setSettings(Map settings); public int getVersion() { - return ProfileVersioner.CURRENT_VERSION; + return ProfileVersionNumbers.CURRENT_VERSION; } public boolean hasEqualSettings(Map otherMap, List allKeys) { @@ -119,7 +120,7 @@ public Profile rename(String name, ProfileManager manager) { final String trimmed= name.trim(); - CustomProfile newProfile= new CustomProfile(trimmed, fSettings, ProfileVersioner.CURRENT_VERSION); + CustomProfile newProfile= new CustomProfile(trimmed, fSettings, ProfileVersionNumbers.CURRENT_VERSION); manager.addProfile(newProfile); return newProfile; } @@ -235,7 +236,7 @@ public final static class SharedProfile extends CustomProfile { public SharedProfile(String oldName, Map options) { - super(oldName, options, ProfileVersioner.CURRENT_VERSION); + super(oldName, options, ProfileVersionNumbers.CURRENT_VERSION); } public Profile rename(String name, ProfileManager manager) { @@ -463,8 +464,8 @@ IEclipsePreferences uiPrefs= context.getNode(JavaUI.ID_PLUGIN); IEclipsePreferences corePrefs= context.getNode(JavaCore.PLUGIN_ID); - int version= uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, ProfileVersioner.VERSION_1); - if (version != ProfileVersioner.CURRENT_VERSION) { + int version= uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, ProfileVersionNumbers.VERSION_1); + if (version != ProfileVersionNumbers.CURRENT_VERSION) { Map allOptions= new HashMap(); addAll(uiPrefs, allOptions); addAll(corePrefs, allOptions); @@ -556,8 +557,8 @@ final IEclipsePreferences uiPrefs= context.getNode(JavaUI.ID_PLUGIN); updatePreferences(uiPrefs, fUIKeys, profileOptions); - if (uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, 0) != ProfileVersioner.CURRENT_VERSION) { - uiPrefs.putInt(FORMATTER_SETTINGS_VERSION, ProfileVersioner.CURRENT_VERSION); + if (uiPrefs.getInt(FORMATTER_SETTINGS_VERSION, 0) != ProfileVersionNumbers.CURRENT_VERSION) { + uiPrefs.putInt(FORMATTER_SETTINGS_VERSION, ProfileVersionNumbers.CURRENT_VERSION); } if (context.getName() == InstanceScope.SCOPE) { Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java,v retrieving revision 1.17 diff -u -r1.17 CreateProfileDialog.java --- ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java 6 Oct 2005 15:41:04 -0000 1.17 +++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/CreateProfileDialog.java 21 Jan 2006 22:20:39 -0000 @@ -35,6 +35,8 @@ import org.eclipse.jface.dialogs.IDialogSettings; import org.eclipse.jface.dialogs.StatusDialog; +import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; + import org.eclipse.jdt.ui.JavaUI; import org.eclipse.jdt.internal.ui.JavaPlugin; @@ -186,7 +188,7 @@ final Map baseSettings= new HashMap(((Profile)fSortedProfiles.get(fProfileCombo.getSelectionIndex())).getSettings()); final String profileName= fNameText.getText(); - fCreatedProfile= new CustomProfile(profileName, baseSettings, ProfileVersioner.CURRENT_VERSION); + fCreatedProfile= new CustomProfile(profileName, baseSettings, ProfileVersionNumbers.CURRENT_VERSION); fProfileManager.addProfile(fCreatedProfile); super.okPressed(); } Index: ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java =================================================================== RCS file: /home/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java,v retrieving revision 1.21 diff -u -r1.21 ProfileVersioner.java --- ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java 6 Oct 2005 15:41:04 -0000 1.21 +++ ui/org/eclipse/jdt/internal/ui/preferences/formatter/ProfileVersioner.java 21 Jan 2006 22:20:40 -0000 @@ -16,29 +16,19 @@ import org.eclipse.jdt.core.JavaCore; import org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants; +import org.eclipse.jdt.core.formatter.ProfileVersionNumbers; import org.eclipse.jdt.internal.corext.util.JavaModelUtil; + import org.eclipse.jdt.internal.ui.preferences.formatter.ProfileManager.CustomProfile; public class ProfileVersioner { - public static final int VERSION_1= 1; // < 20040113 (includes M6) - public static final int VERSION_2= 2; // before renaming almost all - public static final int VERSION_3= 3; // after renaming almost all - public static final int VERSION_4= 4; - public static final int VERSION_5= 5; // after splitting of FORMATTER_INDENT_BLOCK_STATEMENTS - public static final int VERSION_6= 6; // after splitting of new_line_in_control_statements - public static final int VERSION_7= 7; // after moving comment formatter to JDT Core - public static final int VERSION_8= 8; // fix for https://bugs.eclipse.org/bugs/show_bug.cgi?id=89739 - public static final int VERSION_9= 9; // after storing project profile names in preferences - - public static final int CURRENT_VERSION= VERSION_9; - public static void updateAndComplete(CustomProfile profile) { final Map oldSettings= profile.getSettings(); Map newSettings= updateAndComplete(oldSettings, profile.getVersion()); - profile.setVersion(CURRENT_VERSION); + profile.setVersion(ProfileVersionNumbers.CURRENT_VERSION); profile.setSettings(newSettings); } @@ -47,22 +37,22 @@ switch (version) { - case VERSION_1: + case ProfileVersionNumbers.VERSION_1: version1to2(oldSettings); - case VERSION_2: + case ProfileVersionNumbers.VERSION_2: version2to3(oldSettings); - case VERSION_3: + case ProfileVersionNumbers.VERSION_3: version3to4(oldSettings); - case VERSION_4: + case ProfileVersionNumbers.VERSION_4: version4to5(oldSettings); - case VERSION_5: + case ProfileVersionNumbers.VERSION_5: version5to6(oldSettings); - case VERSION_6: + case ProfileVersionNumbers.VERSION_6: version6to7(oldSettings); default: @@ -117,9 +107,9 @@ public static int getVersionStatus(CustomProfile profile) { final int version= profile.getVersion(); - if (version < CURRENT_VERSION) + if (version < ProfileVersionNumbers.CURRENT_VERSION) return -1; - else if (version > CURRENT_VERSION) + else if (version > ProfileVersionNumbers.CURRENT_VERSION) return 1; else return 0;