1 package com.dotmarketing.comparators; 2 3 import java.util.Comparator ; 4 import java.util.Date ; 5 6 import org.apache.commons.beanutils.PropertyUtils; 7 8 import com.dotmarketing.portlets.contentlet.model.Contentlet; 9 10 14 public class ContentComparator implements Comparator <Contentlet> { 15 16 private String orderType = ""; 17 18 private String orderField = ""; 19 20 public ContentComparator(String orderField, String orderType) { 21 super(); 22 this.orderType = orderType; 23 this.orderField = orderField; 24 } 25 26 public ContentComparator(String orderFieldAndType) { 27 super(); 28 String [] values = orderFieldAndType.split(" "); 29 if (values.length > 0) 30 this.orderField = values[0]; 31 32 if (values.length > 1) 33 this.orderType = values[1]; 34 else 35 this.orderType = "asc"; 36 } 37 38 public int compare(Contentlet w1, Contentlet w2) { 39 40 try { 41 Object value1 = PropertyUtils.getSimpleProperty(w1, orderField); 42 Object value2 = PropertyUtils.getSimpleProperty(w2, orderField); 43 44 int ret = 0; 45 46 if (value1 == null || value2 == null) { 47 return ret; 48 } else if (value1 instanceof Integer ) { 49 ret = ((Integer )value1).compareTo((Integer )value2); 50 } else if (value1 instanceof Long ) { 51 ret = ((Long )value1).compareTo((Long )value2); 52 } else if (value1 instanceof Date ) { 53 ret = ((Date )value1).compareTo((Date )value2); 54 } else if (value1 instanceof String ) { 55 ret = ((String )value1).compareTo((String )value2); 56 } else if (value1 instanceof Float ) { 57 ret = ((Float )value1).compareTo((Float )value2); 58 } else if (value1 instanceof Boolean ) { 59 ret = ((Boolean )value1).compareTo((Boolean )value2); 60 } 61 62 if (orderType.equals("asc")) { 63 return ret; 64 } 65 66 return ret * -1; 67 68 } catch (Exception e) { 69 70 } 71 return 0; 72 } 73 }
| Popular Tags
|