| 1 21 package net.sf.hajdbc.balancer; 22 23 import java.util.Collection ; 24 import java.util.Collections ; 25 import java.util.Comparator ; 26 import java.util.LinkedList ; 27 28 import net.sf.hajdbc.Database; 29 30 34 public class SimpleBalancer extends AbstractBalancer 35 { 36 private static Comparator <Database> comparator = new Comparator <Database>() 37 { 38 41 public int compare(Database database1, Database database2) 42 { 43 return database2.getWeight() - database1.getWeight(); 44 } 45 }; 46 47 private LinkedList <Database> databaseQueue = new LinkedList <Database>(); 48 49 52 @Override  53 protected Collection <Database> getDatabases() 54 { 55 return this.databaseQueue; 56 } 57 58 61 @Override  62 public synchronized Database first() 63 { 64 return this.databaseQueue.element(); 65 } 66 67 70 public synchronized Database next() 71 { 72 return this.first(); 73 } 74 75 78 @Override  79 public synchronized boolean add(Database database) 80 { 81 boolean added = super.add(database); 82 83 if (added) 84 { 85 Collections.sort(this.databaseQueue, comparator); 86 } 87 88 return added; 89 } 90 } 91 | Popular Tags |