Use switch over strings where possible
Change cascades of ifs which can be converted to switch over Strings
Change-Id: I5d1de38e81d91ac775e3b651e0d54c8374f7c028
Signed-off-by: Carsten Hammer <carsten.hammer@t-online.de>
diff --git a/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/StandardElementHandler.java b/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/StandardElementHandler.java
index 397b5c3..50d7509 100644
--- a/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/StandardElementHandler.java
+++ b/bundles/org.eclipse.core.expressions/src/org/eclipse/core/internal/expressions/StandardElementHandler.java
@@ -29,48 +29,69 @@
@Override
public Expression create(ExpressionConverter converter, IConfigurationElement element) throws CoreException {
String name= element.getName();
- if (ExpressionTagNames.INSTANCEOF.equals(name)) {
+ if (name == null) {
+ return null;
+ }
+
+ switch (name) {
+ case ExpressionTagNames.INSTANCEOF:
return new InstanceofExpression(element);
- } else if (ExpressionTagNames.TEST.equals(name)) {
+ case ExpressionTagNames.TEST:
return new TestExpression(element);
- } else if (ExpressionTagNames.OR.equals(name)) {
+ case ExpressionTagNames.OR:
+ {
OrExpression result= new OrExpression();
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.AND.equals(name)) {
+ }
+ case ExpressionTagNames.AND:
+ {
AndExpression result= new AndExpression();
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.NOT.equals(name)) {
+ }
+ case ExpressionTagNames.NOT:
return new NotExpression(converter.perform(element.getChildren()[0]));
- } else if (ExpressionTagNames.WITH.equals(name)) {
+ case ExpressionTagNames.WITH:
+ {
WithExpression result= new WithExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ADAPT.equals(name)) {
+ }
+ case ExpressionTagNames.ADAPT:
+ {
AdaptExpression result= new AdaptExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ITERATE.equals(name)) {
+ }
+ case ExpressionTagNames.ITERATE:
+ {
IterateExpression result= new IterateExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.COUNT.equals(name)) {
+ }
+ case ExpressionTagNames.COUNT:
return new CountExpression(element);
- } else if (ExpressionTagNames.SYSTEM_TEST.equals(name)) {
+ case ExpressionTagNames.SYSTEM_TEST:
return new SystemTestExpression(element);
- } else if (ExpressionTagNames.RESOLVE.equals(name)) {
+ case ExpressionTagNames.RESOLVE:
+ {
ResolveExpression result= new ResolveExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ENABLEMENT.equals(name)) {
+ }
+ case ExpressionTagNames.ENABLEMENT:
+ {
EnablementExpression result= new EnablementExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.EQUALS.equals(name)) {
+ }
+ case ExpressionTagNames.EQUALS:
return new EqualsExpression(element);
- } else if (ExpressionTagNames.REFERENCE.equals(name)) {
+ case ExpressionTagNames.REFERENCE:
return new ReferenceExpression(element);
+ default:
+ break;
}
return null;
}
@@ -78,19 +99,28 @@
@Override
public Expression create(ExpressionConverter converter, Element element) throws CoreException {
String name= element.getNodeName();
- if (ExpressionTagNames.INSTANCEOF.equals(name)) {
+ if (name == null) {
+ return null;
+ }
+
+ switch (name) {
+ case ExpressionTagNames.INSTANCEOF:
return new InstanceofExpression(element);
- } else if (ExpressionTagNames.TEST.equals(name)) {
+ case ExpressionTagNames.TEST:
return new TestExpression(element);
- } else if (ExpressionTagNames.OR.equals(name)) {
+ case ExpressionTagNames.OR:
+ {
OrExpression result= new OrExpression();
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.AND.equals(name)) {
+ }
+ case ExpressionTagNames.AND:
+ {
AndExpression result= new AndExpression();
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.NOT.equals(name)) {
+ }
+ case ExpressionTagNames.NOT:
Node child = element.getFirstChild();
while (child != null) {
if (child.getNodeType() == Node.ELEMENT_NODE) {
@@ -98,34 +128,47 @@
}
child = child.getNextSibling();
}
- } else if (ExpressionTagNames.WITH.equals(name)) {
+ break;
+ case ExpressionTagNames.WITH:
+ {
WithExpression result= new WithExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ADAPT.equals(name)) {
+ }
+ case ExpressionTagNames.ADAPT:
+ {
AdaptExpression result= new AdaptExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ITERATE.equals(name)) {
+ }
+ case ExpressionTagNames.ITERATE:
+ {
IterateExpression result= new IterateExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.COUNT.equals(name)) {
+ }
+ case ExpressionTagNames.COUNT:
return new CountExpression(element);
- } else if (ExpressionTagNames.SYSTEM_TEST.equals(name)) {
+ case ExpressionTagNames.SYSTEM_TEST:
return new SystemTestExpression(element);
- } else if (ExpressionTagNames.RESOLVE.equals(name)) {
+ case ExpressionTagNames.RESOLVE:
+ {
ResolveExpression result= new ResolveExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.ENABLEMENT.equals(name)) {
+ }
+ case ExpressionTagNames.ENABLEMENT:
+ {
EnablementExpression result= new EnablementExpression(element);
processChildren(converter, element, result);
return result;
- } else if (ExpressionTagNames.EQUALS.equals(name)) {
+ }
+ case ExpressionTagNames.EQUALS:
return new EqualsExpression(element);
- } else if (ExpressionTagNames.REFERENCE.equals(name)) {
+ case ExpressionTagNames.REFERENCE:
return new ReferenceExpression(element);
+ default:
+ break;
}
return null;
}
diff --git a/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/A_TypeExtender.java b/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/A_TypeExtender.java
index 04a0b96..dc9047b 100644
--- a/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/A_TypeExtender.java
+++ b/tests/org.eclipse.core.expressions.tests/src/org/eclipse/core/internal/expressions/tests/A_TypeExtender.java
@@ -21,14 +21,21 @@
@Override
public boolean test(Object receiver, String property, Object[] args, Object expectedValue) {
- if ("simple".equals(property)) { //$NON-NLS-1$
+ if (property == null) {
+ return false;
+ }
+
+ switch (property) {
+ case "simple": //$NON-NLS-1$
return "simple".equals(expectedValue); //$NON-NLS-1$
- } else if ("overridden".equals(property)) { //$NON-NLS-1$
+ case "overridden": //$NON-NLS-1$
return "A".equals(expectedValue); //$NON-NLS-1$
- } else if ("ordering".equals(property)) { //$NON-NLS-1$
+ case "ordering": //$NON-NLS-1$
return "A".equals(expectedValue); //$NON-NLS-1$
- } else if ("chainOrdering".equals(property)) { //$NON-NLS-1$
+ case "chainOrdering": //$NON-NLS-1$
return "A".equals(expectedValue); //$NON-NLS-1$
+ default:
+ break;
}
Assert.isTrue(false);
return false;
diff --git a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
index 3141bd5..7542b4d 100644
--- a/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
+++ b/tests/org.eclipse.core.tests.harness/src/org/eclipse/core/tests/session/SetupManager.java
@@ -184,12 +184,18 @@
continue;
}
Element toParse = (Element) next;
- if (toParse.getTagName().equals("eclipseArg")) {
+ switch (toParse.getTagName()) {
+ case "eclipseArg":
loadEclipseArgument(newSetup, toParse);
- } else if (toParse.getTagName().equals("vmArg")) {
+ break;
+ case "vmArg":
loadVMArgument(newSetup, toParse);
- } else if (toParse.getTagName().equals("systemProperty")) {
+ break;
+ case "systemProperty":
loadProperty(newSetup, toParse);
+ break;
+ default:
+ break;
}
}
setups.add(newSetup);