AtrComparator.java
package sk.iway.iwcm.doc;
import java.io.Serializable;
import java.util.Comparator;
import org.apache.commons.beanutils.BeanUtils;
import sk.iway.iwcm.Tools;
/**
* AtrComparator.java
*
*@Title webjet4
*@Company Interway s.r.o. (www.interway.sk)
*@Copyright Interway s.r.o. (c) 2001-2005
*@author $Author: jeeff $
*@version $Revision: 1.3 $
*@created Date: 23.11.2005 12:03:44
*@modified $Date: 2007/09/07 13:39:29 $
*/
public class AtrComparator implements Comparator<AtrDocBean>, Serializable
{
/**
* Comment for <code>serialVersionUID</code>
*/
private static final long serialVersionUID = 5317055441014901662L;
private String atrName = null;
public AtrComparator(String atrName)
{
this.atrName = atrName;
}
@Override
public int compare(AtrDocBean d1, AtrDocBean d2)
{
String s1 = getAtrValue(d1);
String s2 = getAtrValue(d2);
try
{
double i1 = Double.parseDouble(s1.replace(',', '.'));
double i2 = Double.parseDouble(s2.replace(',', '.'));
return Double.compare(i1, i2);
}
catch (Exception e)
{
//nie su to cisla
}
return(s1.compareTo(s2));
}
public String getAtrValue(AtrDocBean atrDocBean)
{
if (atrName.startsWith("doc."))
{
//skusme ako property
try
{
String value = BeanUtils.getProperty(atrDocBean, atrName.substring(4));
if (value != null) return value;
}
catch (Exception e)
{
sk.iway.iwcm.Logger.error(e);
}
}
for (AtrBean atrBean : atrDocBean.getAtrList())
{
if (atrName.equals(atrBean.getAtrName()) && Tools.isNotEmpty(atrBean.getValueHtml()))
{
//Logger.println(AtrComparator.class, "compare: " + atrDocBean.getTitle()+" value="+atrBean.getValueHtml());
return(atrBean.getValueHtml().toLowerCase());
}
}
//nenasli sme, skusme ako klasicke property
try
{
String value = BeanUtils.getProperty(atrDocBean, atrName);
if (value != null) return value;
}
catch (Exception e)
{
sk.iway.iwcm.Logger.error(e);
}
return("");
}
}