diff options
author | Roberto E. Escobar | 2013-07-10 01:27:06 +0000 |
---|---|---|
committer | Gerrit Code Review @ Eclipse.org | 2013-09-13 21:09:04 +0000 |
commit | 98b93fa8d9dbe3c59778a779eecda5154eb44415 (patch) | |
tree | 784aace6883ff7720ce79b84f190abb94590ec14 /plugins/org.eclipse.osee.orcs | |
parent | 824718baa32a2c863ecb07a1f03aadc93cd4e75d (diff) | |
download | org.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.tar.gz org.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.tar.xz org.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.zip |
feature[ats_7SNLZ]: Add relation ordering and sorting
Change-Id: I913dad60011c3a55e4a05b18e3371a102ccb47b4
Diffstat (limited to 'plugins/org.eclipse.osee.orcs')
-rw-r--r-- | plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java index faa35a60fe0..e0bf31809b7 100644 --- a/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java +++ b/plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java @@ -20,7 +20,7 @@ public class NameComparator implements Comparator<Named> { private static final Pattern numberPattern = Pattern.compile("[+-]?\\d+"); private final Matcher numberMatcher = numberPattern.matcher(""); - private SortOrder orderType = SortOrder.ASCENDING; + private final SortOrder orderType; public NameComparator(SortOrder orderType) { this.orderType = orderType; @@ -36,16 +36,12 @@ public class NameComparator implements Comparator<Named> { String name1 = getName(o1); String name2 = getName(o2); - numberMatcher.reset(name1); - if (numberMatcher.matches()) { - numberMatcher.reset(name2); - if (numberMatcher.matches()) { - if ((name1.length() < NUMBER_STRING_LIMIT) && (name2.length() < NUMBER_STRING_LIMIT)) { - if (orderType.isAscending()) { - return Long.valueOf(name1).compareTo(Long.valueOf(name2)); - } else { - return Long.valueOf(name2).compareTo(Long.valueOf(name1)); - } + if (areNumbers(name1, name2)) { + if ((name1.length() < NUMBER_STRING_LIMIT) && (name2.length() < NUMBER_STRING_LIMIT)) { + if (orderType.isAscending()) { + return Long.valueOf(name1).compareTo(Long.valueOf(name2)); + } else { + return Long.valueOf(name2).compareTo(Long.valueOf(name1)); } } } @@ -55,4 +51,18 @@ public class NameComparator implements Comparator<Named> { return name2.compareTo(name1); } } + + private boolean areNumbers(String o1, String o2) { + boolean result = false; + if (o1 != null && o2 != null) { + numberMatcher.reset(o1); + if (numberMatcher.matches()) { + numberMatcher.reset(o2); + if (numberMatcher.matches()) { + result = true; + } + } + } + return result; + } }
\ No newline at end of file |