From fa1e013ffd2fdcce685c56f5726bb49dd9a64906 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 24 Jul 2017 11:46:32 +0200
Subject: [PATCH] switch statement fixed after refactoring

---
 .../services/search/ElementMatcher.java       | 128 +++++++++---------
 1 file changed, 63 insertions(+), 65 deletions(-)

diff --git a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
index e42dd90ee7..44ba848aa0 100644
--- a/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
+++ b/service/src/main/java/lcsb/mapviewer/services/search/ElementMatcher.java
@@ -24,20 +24,19 @@ import lcsb.mapviewer.services.search.db.TargetView;
 import lcsb.mapviewer.services.view.AnnotationViewFactory;
 
 public class ElementMatcher {
-	
+
 	/**
 	 * Default class logger.
 	 */
-	private final Logger logger = Logger.getLogger(ElementMatcher.class);
+	private final Logger					logger = Logger.getLogger(ElementMatcher.class);
 
 	/**
 	 * Factory object used for creation of
 	 * {@link lcsb.mapviewer.services.view.AnnotationView} elements.
 	 */
 	@Autowired
-	private AnnotationViewFactory annotationViewFactory;
-	
-	
+	private AnnotationViewFactory	annotationViewFactory;
+
 	/**
 	 * Check if the target should be applied to the element.
 	 * 
@@ -125,82 +124,81 @@ public class ElementMatcher {
 	}
 
 	public boolean elementMatch(Target target, BioEntity element) {
-		if (target.getType().equals(TargetType.COMPLEX_PROTEIN.getCommonName())) {
-			MiriamData targetAnnotation = target.getSource();
-			if (MiriamType.CHEMBL_TARGET.equals(targetAnnotation.getDataType())) {
-				if (element.getMiriamData().contains(targetAnnotation)) {
-					return true;
+		MiriamData targetAnnotation = target.getSource();
+		switch (target.getType()) {
+			case COMPLEX_PROTEIN:
+				if (MiriamType.CHEMBL_TARGET.equals(targetAnnotation.getDataType())) {
+					if (element.getMiriamData().contains(targetAnnotation)) {
+						return true;
+					}
 				}
-			}
-			Collection<String> ids = new HashSet<String>();
-			for (MiriamData row : target.getGenes()) {
-				ids.add(row.getResource());
-			}
-
-			if (element instanceof Complex) {
-				Complex complex = (Complex) element;
-				Set<Species> speciesSet = complex.getAllSimpleChildren();
-				if (speciesSet.size() != ids.size()) {
-					return false;
+				Collection<String> ids = new HashSet<String>();
+				for (MiriamData row : target.getGenes()) {
+					ids.add(row.getResource());
 				}
 
-				for (Element id : speciesSet) {
-					if (!ids.contains(id.getName())) {
+				if (element instanceof Complex) {
+					Complex complex = (Complex) element;
+					Set<Species> speciesSet = complex.getAllSimpleChildren();
+					if (speciesSet.size() != ids.size()) {
 						return false;
 					}
-				}
-				return true;
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.SINGLE_PROTEIN.getCommonName())) {
-			MiriamData targetAnnotation = null;
-			if (target.getSource() != null) {
-				targetAnnotation = target.getSource();
-			} else if (target.getGenes().size() > 0) {
-				targetAnnotation = target.getGenes().get(0);
-			} else {
-				logger.warn("Invalid target found: " + target);
-			}
-			if (targetAnnotation != null && element.getMiriamData().contains(targetAnnotation)) {
-				return true;
-			}
-			if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
-				if (target.getGenes().size() > 0) {
-					String hgncId = target.getGenes().get(0).getResource();
-					if (element.getName().equalsIgnoreCase(hgncId)) {
-						return true;
+
+					for (Element id : speciesSet) {
+						if (!ids.contains(id.getName())) {
+							return false;
+						}
 					}
-				}
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.PROTEIN_FAMILY.getCommonName())) {
-			if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
-				String hgncId = target.getGenes().get(0).getResource();
-				if (element.getName().equalsIgnoreCase(hgncId)) {
 					return true;
-				} else if (element.getMiriamData().contains(new MiriamData(MiriamType.HGNC_SYMBOL, hgncId))) {
+				}
+				return false;
+			case SINGLE_PROTEIN:
+				if (target.getSource() != null) {
+					targetAnnotation = target.getSource();
+				} else if (target.getGenes().size() > 0) {
+					targetAnnotation = target.getGenes().get(0);
+				} else {
+					logger.warn("Invalid target found: " + target);
+				}
+				if (targetAnnotation != null && element.getMiriamData().contains(targetAnnotation)) {
 					return true;
 				}
-				for (MiriamData protein : target.getGenes()) {
-					hgncId = protein.getResource();
+				if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
+					if (target.getGenes().size() > 0) {
+						String hgncId = target.getGenes().get(0).getResource();
+						if (element.getName().equalsIgnoreCase(hgncId)) {
+							return true;
+						}
+					}
+				}
+				return false;
+			case PROTEIN_FAMILY:
+				if (element instanceof Protein || element instanceof Rna || element instanceof Gene) {
+					String hgncId = target.getGenes().get(0).getResource();
 					if (element.getName().equalsIgnoreCase(hgncId)) {
 						return true;
 					} else if (element.getMiriamData().contains(new MiriamData(MiriamType.HGNC_SYMBOL, hgncId))) {
 						return true;
 					}
+					for (MiriamData protein : target.getGenes()) {
+						hgncId = protein.getResource();
+						if (element.getName().equalsIgnoreCase(hgncId)) {
+							return true;
+						} else if (element.getMiriamData().contains(new MiriamData(MiriamType.HGNC_SYMBOL, hgncId))) {
+							return true;
+						}
+					}
 				}
-			}
-			return false;
-		} else if (target.getType().equals(TargetType.OTHER.getCommonName())) {
-			// in other case just compare names
-			String name = target.getGenes().get(0).getResource();
-			return element.getName().equalsIgnoreCase(name);
-		} else {
-			throw new InvalidArgumentException("Unknown drug target type: " + target.getType());
+				return false;
+			case OTHER:
+				// in other case just compare names
+				String name = target.getGenes().get(0).getResource();
+				return element.getName().equalsIgnoreCase(name);
+			default:
+				throw new InvalidArgumentException("Unknown drug target type: " + target.getType());
 		}
 	}
 
-
 	/**
 	 * @return the annotationViewFactory
 	 * @see #annotationViewFactory
@@ -209,9 +207,9 @@ public class ElementMatcher {
 		return annotationViewFactory;
 	}
 
-
 	/**
-	 * @param annotationViewFactory the annotationViewFactory to set
+	 * @param annotationViewFactory
+	 *          the annotationViewFactory to set
 	 * @see #annotationViewFactory
 	 */
 	public void setAnnotationViewFactory(AnnotationViewFactory annotationViewFactory) {
-- 
GitLab