[430682] Improves ModelResolverManager

Correct typos.
Make it more testable.

Bug: 430682
Change-Id: Ia93152a4622ca5d226e62d534654dd260f7c013b
Signed-off-by: Arthur Daussy <arthur.daussy@obeo.fr>
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverManager.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverManager.java
index b5e14a6..7e4801c 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverManager.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverManager.java
@@ -40,13 +40,16 @@
  */
 public class ModelResolverManager {
 
-	/** preference key pointing at the "forced resolver" id. */
-	private static final String FORCED_RESOLVER_PREF_KEY = "org.eclipse.emf.compare.ide.ui.forced.resolver"; //$NON-NLS-1$
+	/** Preference key pointing at the "user resolver" id. */
+	private static final String USER_RESOLVER_PREF_KEY = "org.eclipse.emf.compare.ide.ui.user.resolver"; //$NON-NLS-1$
 
-	/** Preference key pointing at the "disable resolving" value. */
-	private static final String DISABLE_RESOLVING_PREF_KEY = "org.eclipse.emf.compare.ide.ui.disable.resolving"; //$NON-NLS-1$
+	/**
+	 * Preference key pointing at the "enable resolving" value. Set to true or null if the resolving is
+	 * enabled.
+	 */
+	private static final String ENABLE_RESOLVING_PREF_KEY = "org.eclipse.emf.compare.ide.ui.enable.resolving"; //$NON-NLS-1$
 
-	/** {@link Preferences} holding default resolver value. */
+	/** {@link Preferences} holding resolvers preference values. */
 	private final Preferences preferenceStore;
 
 	/** registry of ModelResolverDescriptor. */
@@ -64,7 +67,7 @@
 	}
 
 	/**
-	 * Add a new resolver.
+	 * Adds a new resolver.
 	 * 
 	 * @param resolver
 	 *            Resolver instance
@@ -76,14 +79,16 @@
 	 *            Human readable description of the resolver or <code>null</code>.
 	 * @return {@link ModelResolverDescriptor} of on old {@link IModelResolver} registered with the same id.
 	 */
-	ModelResolverDescriptor add(IModelResolver resolver, String id, String label, String description) {
+	public ModelResolverDescriptor add(IModelResolver resolver, String id, String label, String description) {
+		Preconditions.checkNotNull(resolver);
+		Preconditions.checkNotNull(id);
 		return descriptors.put(id, new ModelResolverDescriptor(resolver, id, label, description));
 	}
 
 	/**
-	 * Clear the registry.
+	 * Clears the registry.
 	 */
-	void clear() {
+	public void clear() {
 		for (ModelResolverDescriptor descriptor : descriptors.values()) {
 			descriptor.getModelResolver().dispose();
 		}
@@ -91,7 +96,7 @@
 	}
 
 	/**
-	 * Get all registered {@link ModelResolverDescriptor}.
+	 * Gets all registered {@link ModelResolverDescriptor}.
 	 * 
 	 * @return
 	 */
@@ -100,7 +105,7 @@
 	}
 
 	/**
-	 * Get the user selected resolver.
+	 * Gets the user selected resolver.
 	 * <p>
 	 * The user selected resolver will be evaluated before any other ModelResolverDescriptor
 	 * </p>
@@ -109,7 +114,7 @@
 	 */
 	public ModelResolverDescriptor getUserSelectedResolver() {
 		ModelResolverDescriptor result = null;
-		String curentDefaultResolver = preferenceStore.get(FORCED_RESOLVER_PREF_KEY, null);
+		String curentDefaultResolver = preferenceStore.get(USER_RESOLVER_PREF_KEY, null);
 		// Get default from preferences
 		if (curentDefaultResolver != null) {
 			ModelResolverDescriptor modelResolverDescriptor = descriptors.get(curentDefaultResolver);
@@ -121,7 +126,7 @@
 	}
 
 	/**
-	 * Return the descriptor with the specific id.
+	 * Returns the descriptor with the specific id.
 	 * 
 	 * @param id
 	 *            ID of the descriptor.
@@ -132,65 +137,68 @@
 	}
 
 	/**
-	 * Return true if the model resolving is enabled.
+	 * Returns true if the model resolving is enabled.
 	 * <p>
 	 * The default value is true
 	 * </p>
 	 * 
 	 * @return True if the resolving mechanism is disabled.
 	 */
-	public boolean isResolutionEnable() {
-		return Boolean.valueOf(preferenceStore.get(DISABLE_RESOLVING_PREF_KEY, Boolean.TRUE.toString()))
+	public boolean isResolutionEnabled() {
+		return Boolean.valueOf(preferenceStore.get(ENABLE_RESOLVING_PREF_KEY, Boolean.TRUE.toString()))
 				.booleanValue();
 	}
 
 	/**
-	 * Set the resolving mechanism on or off.
+	 * Sets the resolving mechanism on or off.
 	 * 
 	 * @param isEnabled
 	 */
 	public void setResolution(boolean isEnabled) {
 		if (isEnabled) {
-			preferenceStore.remove(DISABLE_RESOLVING_PREF_KEY);
+			preferenceStore.remove(ENABLE_RESOLVING_PREF_KEY);
 		} else {
-			preferenceStore.put(DISABLE_RESOLVING_PREF_KEY, Boolean.toString(false));
+			preferenceStore.put(ENABLE_RESOLVING_PREF_KEY, Boolean.toString(false));
 		}
 		if (TracingConstant.CONFIGURATION_TRACING_ACTIVATED) {
 			StringBuilder trace = new StringBuilder("Preference "); //$NON-NLS-1$
-			trace.append(DISABLE_RESOLVING_PREF_KEY).append(" has been set to:\n").append( //$NON-NLS-1$
-					preferenceStore.get(DISABLE_RESOLVING_PREF_KEY, "")); //$NON-NLS-1$
+			trace.append(ENABLE_RESOLVING_PREF_KEY).append(" has been set to:\n").append( //$NON-NLS-1$
+					preferenceStore.get(ENABLE_RESOLVING_PREF_KEY, "")); //$NON-NLS-1$
 			EMFCompareIDEUIPlugin.getDefault().log(IStatus.INFO, trace.toString());
 		}
 	}
 
 	/**
-	 * Remove the ModelResolverDescriptor register with this key from the registry.
+	 * Removes the ModelResolverDescriptor register with this key from the registry.
 	 * 
 	 * @param className
 	 * @return
 	 */
-	ModelResolverDescriptor remove(String className) {
-		return descriptors.remove(className);
+	public ModelResolverDescriptor remove(String className) {
+		if (className != null) {
+			return descriptors.remove(className);
+		}
+		return null;
 	}
 
 	/**
-	 * Set the forced resolver.
+	 * Sets the resolver selected by the user.
 	 * <p>
 	 * The forced resolver will be evaluated before any other ModelResolverDescriptor
 	 * </p>
 	 * 
 	 * @param forcedResolver
 	 */
-	public void setForcedResolver(ModelResolverDescriptor forcedResolver) {
+	public void setUserSelectedResolver(ModelResolverDescriptor forcedResolver) {
 		if (forcedResolver != null) {
-			preferenceStore.put(FORCED_RESOLVER_PREF_KEY, forcedResolver.getId());
+			preferenceStore.put(USER_RESOLVER_PREF_KEY, forcedResolver.getId());
 		} else {
-			preferenceStore.remove(FORCED_RESOLVER_PREF_KEY);
+			preferenceStore.remove(USER_RESOLVER_PREF_KEY);
 		}
 		if (TracingConstant.CONFIGURATION_TRACING_ACTIVATED) {
 			StringBuilder trace = new StringBuilder("Preference "); //$NON-NLS-1$
-			trace.append(FORCED_RESOLVER_PREF_KEY).append(" has been set to:\n").append( //$NON-NLS-1$
-					preferenceStore.get(FORCED_RESOLVER_PREF_KEY, "")); //$NON-NLS-1$
+			trace.append(USER_RESOLVER_PREF_KEY).append(" has been set to:\n").append( //$NON-NLS-1$
+					preferenceStore.get(USER_RESOLVER_PREF_KEY, "")); //$NON-NLS-1$
 			EMFCompareIDEUIPlugin.getDefault().log(IStatus.INFO, trace.toString());
 		}
 	}
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverRegistryImpl.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverRegistryImpl.java
index 3818756..5f4b535 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverRegistryImpl.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/logical/ModelResolverRegistryImpl.java
@@ -46,7 +46,7 @@
 	 * @see org.eclipse.emf.compare.ide.ui.internal.logical.IModelResolverRegistry#getBestResolverFor(org.eclipse.core.resources.IStorage)
 	 */
 	public IModelResolver getBestResolverFor(IStorage sourceStorage) {
-		if (!resolverManager.isResolutionEnable()) {
+		if (!resolverManager.isResolutionEnabled()) {
 			return noResolvingResolver;
 		}
 		ModelResolverDescriptor resolver = resolverManager.getUserSelectedResolver();
diff --git a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/ModelResolutionPreferencePage.java b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/ModelResolutionPreferencePage.java
index f1d7fe1..219fab2 100644
--- a/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/ModelResolutionPreferencePage.java
+++ b/plugins/org.eclipse.emf.compare.ide.ui/src/org/eclipse/emf/compare/ide/ui/internal/preferences/ModelResolutionPreferencePage.java
@@ -83,7 +83,7 @@
 	protected Control createContents(Composite parent) {
 		activableElements = Lists.newArrayList();
 		// Init data value
-		isEnabled = modelResolverManager.isResolutionEnable();
+		isEnabled = modelResolverManager.isResolutionEnabled();
 		userSelectedResolver = modelResolverManager.getUserSelectedResolver();
 
 		Composite mainContainer = new Composite(parent, SWT.NONE);
@@ -246,7 +246,7 @@
 
 	@Override
 	public boolean performOk() {
-		modelResolverManager.setForcedResolver(userSelectedResolver);
+		modelResolverManager.setUserSelectedResolver(userSelectedResolver);
 		modelResolverManager.setResolution(isEnabled);
 		return super.performOk();
 	}