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