/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.gui.model;
import net.codjo.model.Table;
import net.codjo.persistent.Reference;
import java.util.Comparator;
/**
* Comparateur servant � trier le nom des tables. Cette classe peut etre utiliser avec
* <code>Collections.sort(list, comparator)</code> .
*
* @author $Author: blazart $
* @version $Revision: 1.2 $
*
*
*/
public class TableReferenceComparator implements Comparator {
/** Comparaison par nom physique de table. */
public static final int COMPARE_BY_DB_TABLE_NAME = 0;
/** Comparaison par nom logique de table. */
public static final int COMPARE_BY_TABLE_NAME = 1;
private int compareMode;
/**
* Constructor for the TableReferenceComparator object
*
* @param compareMode Description of Parameter
*
* @throws IllegalArgumentException TODO
*/
public TableReferenceComparator(int compareMode) {
if (compareMode < 0 && compareMode > 1) {
throw new IllegalArgumentException();
}
this.compareMode = compareMode;
}
/**
* DOCUMENT ME!
*
* @param o1 -
* @param o2 -
*
* @return -
*
* @throws IllegalArgumentException TODO
*/
public int compare(Object o1, Object o2) {
Table t1 = (Table)((Reference)o1).getLoadedObject();
Table t2 = (Table)((Reference)o2).getLoadedObject();
switch (compareMode) {
case COMPARE_BY_DB_TABLE_NAME:
return t1.getDBTableName().compareTo(t2.getDBTableName());
case COMPARE_BY_TABLE_NAME:
return t1.getTableName().compareTo(t2.getTableName());
default:
throw new IllegalArgumentException("Unknown Compare Mode");
}
}
/**
* DOCUMENT ME!
*
* @param obj -
*
* @return -
*/
public boolean equals(Object obj) {
return this == obj;
}
}