summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java50
1 files changed, 50 insertions, 0 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java
new file mode 100644
index 000000000..2e192118d
--- /dev/null
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/utils/StringPermissionComparator.java
@@ -0,0 +1,50 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+
+package org.anjocaido.groupmanager.utils;
+
+import java.util.Comparator;
+
+/**
+ *
+ * @author gabrielcouto
+ */
+public class StringPermissionComparator implements Comparator<String> {
+
+ @Override
+ public int compare(String permA, String permB) {
+ boolean ap = permA.startsWith("+");
+ boolean bp = permB.startsWith("+");
+ boolean am = permA.startsWith("-");
+ boolean bm = permB.startsWith("-");
+ if(ap&&bp){
+ return 0;
+ }
+ if(ap&&!bp){
+ return -1;
+ }
+ if(!ap&&bp){
+ return 1;
+ }
+ if(am&&bm){
+ return 0;
+ }
+ if(am&&!bm){
+ return -1;
+ }
+ if(!am&&bm){
+ return 1;
+ }
+ return permA.compareToIgnoreCase(permB);
+ }
+ private static StringPermissionComparator instance;
+ public static StringPermissionComparator getInstance(){
+ if(instance==null){
+ instance = new StringPermissionComparator();
+ }
+ return instance;
+ }
+
+}