Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto E. Escobar2013-07-10 01:27:06 +0000
committerGerrit Code Review @ Eclipse.org2013-09-13 21:09:04 +0000
commit98b93fa8d9dbe3c59778a779eecda5154eb44415 (patch)
tree784aace6883ff7720ce79b84f190abb94590ec14 /plugins/org.eclipse.osee.orcs
parent824718baa32a2c863ecb07a1f03aadc93cd4e75d (diff)
downloadorg.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.tar.gz
org.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.tar.xz
org.eclipse.osee-98b93fa8d9dbe3c59778a779eecda5154eb44415.zip
feature[ats_7SNLZ]: Add relation ordering and sorting
Diffstat (limited to 'plugins/org.eclipse.osee.orcs')
-rw-r--r--plugins/org.eclipse.osee.orcs/src/org/eclipse/osee/orcs/utility/NameComparator.java32
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

Back to the top