001 package videoautomat; 002 import java.io.Serializable; 003 import java.util.Comparator; 004 005 import data.CatalogItem; 006 import data.Value; 007 import data.swing.CountingStockTableModel; 008 009 /** 010 * Comparator used to compare <code>NumberValues</code> of <code>CatalogItems</code> and <code>CountingStockTableModel.Records</code> 011 */ 012 public class ComparatorCurrency implements Comparator, Serializable { 013 /** 014 * Constructs a new <code>ComparatorCurrency</code> 015 * 016 */ 017 public ComparatorCurrency() { 018 } 019 /** 020 * Compares <code>CatalogItemes</code> or <code>CountingStockTableModel.Records</code>. 021 * 022 * @return 0 if both objects are equal, a positive int if arg0 is greater than arg1, otherwise 023 * a negative int. 024 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object) 025 */ 026 public int compare(Object arg0, Object arg1) { 027 if (arg0 instanceof CatalogItem) { 028 return ((CatalogItem) arg0).getValue().compareTo( 029 ((CatalogItem) arg1).getValue()); 030 } 031 if (arg0 instanceof CountingStockTableModel.Record) { 032 Value v1 = 033 ((CountingStockTableModel.Record) arg0) 034 .getDescriptor() 035 .getValue(); 036 Value v2 = 037 ((CountingStockTableModel.Record) arg1) 038 .getDescriptor() 039 .getValue(); 040 return v1.compareTo(v2); 041 } 042 return 0; 043 } 044 }