/** * Comparison implemented so that generic rules get first, specific one are compared by name, * and if anything else is equal, read comes before write */ public int compareTo(DataAccessRule other) { int compareRoot = compareCatalogItems(root, other.root); if (compareRoot != 0) return compareRoot; int compareLayer = compareCatalogItems(layer, other.layer); if (compareLayer != 0) return compareLayer; if (accessMode.equals(other.accessMode)) return 0; else return accessMode.equals(AccessMode.READ) ? -1 : 1; }