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);