Browse Source

Better comparators for RowEntity, RowPermission and RowInheritance.

master
Stanislav Usenkov 9 years ago
parent
commit
cdb7a9288c
  1. 12
      src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java
  2. 16
      src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
  3. 16
      src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java

12
src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java

@ -22,7 +22,15 @@ public class RowEntity implements Cloneable, Comparable<RowEntity>
@Override @Override
public int compareTo(RowEntity other) public int compareTo(RowEntity other)
{ {
final int deltaId = id - other.id; if(entityType.equals(EntityType.PLAYER))
return deltaId != 0 ? deltaId : entity.compareTo(other.entity); {
final int compareByPlayerType = playerType.compareTo(other.playerType);
if(compareByPlayerType != 0)
return 0 - compareByPlayerType;
}
final int compareById = Integer.compare(id, other.id);
if(compareById != 0)
return compareById;
return entity.compareTo(other.entity);
} }
} }

16
src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java

@ -46,8 +46,18 @@ public class RowInheritance implements Cloneable, Comparable<RowInheritance>
@Override @Override
public int compareTo(RowInheritance other) public int compareTo(RowInheritance other)
{ {
return (priority != other.priority) final int compareByPriority = Integer.compare(priority, other.priority);
? priority - other.priority if(compareByPriority != 0)
: parent.compareTo(other.parent); return compareByPriority;
final int compareByParent = parent.toLowerCase().compareTo(other.parent.toLowerCase());
if(compareByParent != 0)
return compareByParent;
if(splittedId != null && other.splittedId != null)
{
final int compareBySplittedId = splittedId.compareTo(other.splittedId);
if(compareBySplittedId != 0)
return compareBySplittedId;
}
return Integer.compare(id, other.id);
} }
} }

16
src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java

@ -2,7 +2,7 @@ package ru.simsonic.rscPermissions.API;
import java.sql.Timestamp; import java.sql.Timestamp;
public class RowPermission implements Cloneable public class RowPermission implements Cloneable, Comparable<RowPermission>
{ {
public int id; public int id;
public String entity; public String entity;
@ -21,4 +21,18 @@ public class RowPermission implements Cloneable
{ {
return (RowPermission)super.clone(); return (RowPermission)super.clone();
} }
@Override
public int compareTo(RowPermission other)
{
final int compareByPermission = permission.toLowerCase().compareTo(other.permission.toLowerCase());
if(compareByPermission != 0)
return compareByPermission;
if(splittedId != null && other.splittedId != null)
{
final int compareBySplittedId = splittedId.compareTo(other.splittedId);
if(compareBySplittedId != 0)
return compareBySplittedId;
}
return Integer.compare(id, other.id);
}
} }

Loading…
Cancel
Save