From 5a5db1496fba473d9d1ae3cecf2a9b6481cc2da3 Mon Sep 17 00:00:00 2001 From: John May Date: Mon, 10 Dec 2012 13:47:58 +0000 Subject: [PATCH] Generified comparators, removing redundant casts Change-Id: I266c7c45501f91c04577d572870e858d2140b171 Signed-off-by: Egon Willighagen --- .../openscience/cdk/layout/AtomPlacer.java | 12 +++++------ .../cyclebasis/SimpleCycleBasis.java | 20 +++++++++---------- .../cdk/smiles/SmilesGenerator.java | 6 +++--- .../smsd/algorithm/single/SingleMapping.java | 13 ++++++------ .../openscience/cdk/smsd/ring/RingFilter.java | 8 ++++---- .../manipulator/AtomContainerComparator.java | 14 +++---------- 6 files changed, 31 insertions(+), 42 deletions(-) diff --git a/src/main/org/openscience/cdk/layout/AtomPlacer.java b/src/main/org/openscience/cdk/layout/AtomPlacer.java index 75292e4ddc5..22f3b98072b 100644 --- a/src/main/org/openscience/cdk/layout/AtomPlacer.java +++ b/src/main/org/openscience/cdk/layout/AtomPlacer.java @@ -74,15 +74,13 @@ public class AtomPlacer */ IAtomContainer molecule = null; - final Comparator ATOM_ORDER = - new Comparator() + final Comparator ATOM_ORDER = + new Comparator() { - public int compare(Object o1, Object o2) + public int compare(IAtom o1, IAtom o2) { - IAtom a1 = (IAtom) o1; - IAtom a2 = (IAtom) o2; - int i1 = ((Integer) a1.getProperty("Weight")).intValue(); - int i2 = ((Integer) a2.getProperty("Weight")).intValue(); + int i1 = ((Integer) o1.getProperty("Weight")); + int i2 = ((Integer) o1.getProperty("Weight")); if (i1 < i2) { return -1; diff --git a/src/main/org/openscience/cdk/ringsearch/cyclebasis/SimpleCycleBasis.java b/src/main/org/openscience/cdk/ringsearch/cyclebasis/SimpleCycleBasis.java index ccf7bd551be..822206555ce 100644 --- a/src/main/org/openscience/cdk/ringsearch/cyclebasis/SimpleCycleBasis.java +++ b/src/main/org/openscience/cdk/ringsearch/cyclebasis/SimpleCycleBasis.java @@ -57,13 +57,13 @@ public class SimpleCycleBasis { private List edgeList; - private List cycles; + private List cycles; private UndirectedGraph graph; private boolean isMinimized = false; private HashMap edgeIndexMap; - public SimpleCycleBasis (List cycles, List edgeList, UndirectedGraph graph) { + public SimpleCycleBasis (List cycles, List edgeList, UndirectedGraph graph) { this.edgeList = edgeList; this.cycles = cycles; this.graph = graph; @@ -73,7 +73,7 @@ public SimpleCycleBasis (List cycles, List edgeList, UndirectedGraph graph) { public SimpleCycleBasis (UndirectedGraph graph) { - this.cycles = new ArrayList(); + this.cycles = new ArrayList(); this.edgeList = new ArrayList(); this.graph = graph; @@ -256,7 +256,7 @@ private void minimize(int startIndex) { // Construct auxiliary graph gu AuxiliaryGraph gu = new AuxiliaryGraph(graph, u); - SimpleCycle shortestCycle = (SimpleCycle) cycles.get(i); + SimpleCycle shortestCycle = cycles.get(i); Iterator vertexIterator = graph.vertexSet().iterator(); while (vertexIterator.hasNext()) { @@ -504,7 +504,7 @@ public Collection essentialCycles() { } if (isEssential) { - result.add((SimpleCycle)cycles.get(i)); + result.add(cycles.get(i)); } } @@ -596,11 +596,11 @@ public Map relevantCycles() { public List equivalenceClasses() { int[] weight = weightVector(); - - Object[] cyclesArray = (Object[]) cycles.toArray(); - Arrays.sort(cyclesArray, new Comparator() { - public int compare(Object o1, Object o2) { - return (int) (((SimpleCycle)o1).weight() - ((SimpleCycle)o2).weight()); + + SimpleCycle[] cyclesArray = cycles.toArray(new SimpleCycle[cycles.size()]); + Arrays.sort(cyclesArray, new Comparator() { + public int compare(SimpleCycle o1, SimpleCycle o2) { + return (int) ((o1).weight() - (o2).weight()); } }); diff --git a/src/main/org/openscience/cdk/smiles/SmilesGenerator.java b/src/main/org/openscience/cdk/smiles/SmilesGenerator.java index 83bce90653a..28124063156 100644 --- a/src/main/org/openscience/cdk/smiles/SmilesGenerator.java +++ b/src/main/org/openscience/cdk/smiles/SmilesGenerator.java @@ -651,11 +651,11 @@ private List getCanNeigh(final IAtom a, final IAtomContainer container) if (v.size() > 1) { Collections.sort(v, - new Comparator() + new Comparator() { - public int compare(Object o1, Object o2) + public int compare(IAtom o1, IAtom o2) { - return (int) ((Long) ((IAtom) o1).getProperty("CanonicalLable") - (Long) ((IAtom) o2).getProperty("CanonicalLable")); + return (int) ((Long) ( o1).getProperty("CanonicalLable") - (Long) (o2).getProperty("CanonicalLable")); } }); } diff --git a/src/main/org/openscience/cdk/smsd/algorithm/single/SingleMapping.java b/src/main/org/openscience/cdk/smsd/algorithm/single/SingleMapping.java index 56e2852bade..9dcf51e444b 100644 --- a/src/main/org/openscience/cdk/smsd/algorithm/single/SingleMapping.java +++ b/src/main/org/openscience/cdk/smsd/algorithm/single/SingleMapping.java @@ -220,17 +220,16 @@ private void postFilter() { mappings = sortedMap; } - private Map sortByValue(Map map) { - List list = new LinkedList(map.entrySet()); - Collections.sort(list, new Comparator() { + private > Map sortByValue(Map map) { + List> list = new LinkedList>(map.entrySet()); + Collections.sort(list, new Comparator>() { - public int compare(Object object1, Object object2) { - return ((Comparable) ((Map.Entry) (object1)).getValue()).compareTo(((Map.Entry) (object2)).getValue()); + public int compare(Map.Entry object1, Map.Entry object2) { + return object1.getValue().compareTo(object2.getValue()); } }); Map result = new LinkedHashMap(); - for (Iterator it = list.iterator(); it.hasNext();) { - Map.Entry entry = (Map.Entry) it.next(); + for (Map.Entry entry : list) { result.put(entry.getKey(), entry.getValue()); } return result; diff --git a/src/main/org/openscience/cdk/smsd/ring/RingFilter.java b/src/main/org/openscience/cdk/smsd/ring/RingFilter.java index 5d9eb1bdc69..514f861aef4 100644 --- a/src/main/org/openscience/cdk/smsd/ring/RingFilter.java +++ b/src/main/org/openscience/cdk/smsd/ring/RingFilter.java @@ -67,7 +67,7 @@ public class RingFilter { private RingFinder ringFinder; - private Comparator comparator; + private Comparator> comparator; private AtomMatcher filter; private IAtomContainer mol; @@ -115,13 +115,13 @@ private boolean ringMatches(List ring) { return true; } - private class RingSizeComparator implements Comparator { + private class RingSizeComparator implements Comparator> { /** * {@inheritDoc} */ - public int compare(Object o1, Object o2) { - return ((List) o1).size() - ((List) o2).size(); + public int compare(List o1, List o2) { + return o1.size() - o2.size(); } } } diff --git a/src/main/org/openscience/cdk/tools/manipulator/AtomContainerComparator.java b/src/main/org/openscience/cdk/tools/manipulator/AtomContainerComparator.java index 6920a75b32b..51388677f2a 100644 --- a/src/main/org/openscience/cdk/tools/manipulator/AtomContainerComparator.java +++ b/src/main/org/openscience/cdk/tools/manipulator/AtomContainerComparator.java @@ -96,17 +96,9 @@ public int compare(IAtomContainer o1, IAtomContainer o2) { return 1; if (o2 == null) return -1; - - // Check for correct instances - if (!(o1 instanceof IAtomContainer) && !(o2 instanceof IAtomContainer)) - return 0; - if (!(o1 instanceof IAtomContainer)) - return -1; - if (!(o2 instanceof IAtomContainer)) - return 1; - - IAtomContainer atomContainer1 = (IAtomContainer) o1; - IAtomContainer atomContainer2 = (IAtomContainer) o2; + + IAtomContainer atomContainer1 = o1; + IAtomContainer atomContainer2 = o2; // 1. Compare atom count if (atomContainer1.getAtomCount() > atomContainer2.getAtomCount())