@Override public void onPoolAdded(Pool pool) { // If the priority of the pool is set, check if it does not overlap // another pool with the same priority if (pool.getPriority() == null) { // Set by default the priority to the lowest over all pools. int minPriority = getMinimumPoolPriority(); pool.setPriority(minPriority + 1); } else { // If the priority is set, update the other pools. onPoolUpdated(pool); } super.onPoolAdded(pool); }
@Override public void onPoolUpdated(Pool poolUpdated) { List<Pool> pools = getProxyManager().getPools(); checkPoolPriorities(pools); Collections.sort( pools, new Comparator<Pool>() { public int compare(Pool o1, Pool o2) { return o1.getPriority().compareTo(o2.getPriority()); } }); int newPriority = poolUpdated.getPriority(); int previousPriority = newPriority; for (Pool pool : pools) { // Move the priority of other pools with lower or // equals priority if (pool.getPriority() == previousPriority && !pool.equals(poolUpdated)) { pool.setPriority(pool.getPriority() + 1); previousPriority = pool.getPriority(); } } super.onPoolUpdated(poolUpdated); }