[571063] Capture preferences encodes dollar literal one time too often
Improve style and remove dead code
diff --git a/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/PreferenceCaptureDialog.java b/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/PreferenceCaptureDialog.java
index a1bc4e7..cdeee6e 100644
--- a/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/PreferenceCaptureDialog.java
+++ b/plugins/org.eclipse.oomph.setup.editor/src/org/eclipse/oomph/setup/presentation/PreferenceCaptureDialog.java
@@ -20,7 +20,6 @@
import org.eclipse.oomph.setup.SetupTask;
import org.eclipse.oomph.setup.ui.recorder.RecorderTransaction;
import org.eclipse.oomph.setup.util.SetupUtil;
-import org.eclipse.oomph.setup.util.StringExpander;
import org.eclipse.oomph.util.IORuntimeException;
import org.eclipse.oomph.util.Pair;
import org.eclipse.oomph.util.PropertiesUtil;
@@ -407,29 +406,8 @@
for (Object object : included)
{
PreferenceTask preferenceTask = (PreferenceTask)object;
- new StringExpander()
- {
- @Override
- protected String resolve(String key)
- {
- return null;
- }
-
- @Override
- protected boolean isUnexpanded(String key)
- {
- return false;
- }
-
- @Override
- protected String filter(String value, String filterName)
- {
- return null;
- }
- };
-
String escapedValue = preferenceTask.getValue();
- String actualValue = SetupUtil.descape(escapedValue);
+ String actualValue = SetupUtil.unescape(escapedValue);
result.put(PreferencesFactory.eINSTANCE.createURI(preferenceTask.getKey()), new Pair<String, String>(null, actualValue));
}
diff --git a/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/util/SetupUtil.java b/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/util/SetupUtil.java
index 95d2571..2932687 100644
--- a/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/util/SetupUtil.java
+++ b/plugins/org.eclipse.oomph.setup/src/org/eclipse/oomph/setup/util/SetupUtil.java
@@ -37,6 +37,27 @@
private static final Map<EClass, Set<Trigger>> TRIGGERS = Collections.synchronizedMap(new HashMap<EClass, Set<Trigger>>());
+ private static final StringExpander UNESCAPE_STRING_EXPANDER = new StringExpander()
+ {
+ @Override
+ protected String resolve(String key)
+ {
+ return CONTROL_CHARACTER_VALUES.containsKey(key) ? CONTROL_CHARACTER_VALUES.get(key) : key;
+ }
+
+ @Override
+ protected boolean isUnexpanded(String key)
+ {
+ return !CONTROL_CHARACTER_VALUES.containsKey(key);
+ }
+
+ @Override
+ protected String filter(String value, String filterName)
+ {
+ return value;
+ }
+ };
+
public static final String INSTALLER_UPDATE_URL = PropertiesUtil.getProperty(SetupProperties.PROP_INSTALLER_UPDATE_URL, DEFAULT_INSTALLER_UPDATE_URL)
.replace('\\', '/');
@@ -87,29 +108,9 @@
return result.toString();
}
- public static String descape(String string)
+ public static String unescape(String string)
{
- return new StringExpander()
- {
-
- @Override
- protected String resolve(String key)
- {
- return CONTROL_CHARACTER_VALUES.containsKey(key) ? CONTROL_CHARACTER_VALUES.get(key) : key;
- }
-
- @Override
- protected boolean isUnexpanded(String key)
- {
- return !CONTROL_CHARACTER_VALUES.containsKey(key);
- }
-
- @Override
- protected String filter(String value, String filterName)
- {
- return value;
- }
- }.expandString(string);
+ return UNESCAPE_STRING_EXPANDER.expandString(string);
}
public static Set<String> getResolvingTargetDefinitions(SetupTaskContext context)