1 21 22 package org.opensubsystems.core.util; 23 24 import java.util.Comparator ; 25 26 import org.opensubsystems.core.data.DataObject; 27 28 36 public class DataObjectOrderingComparator implements Comparator 37 { 38 40 43 protected int[] m_arrOrderedIDs = null; 44 45 47 53 public DataObjectOrderingComparator( 54 int[] arrOrderedIDs 55 ) 56 { 57 super(); 58 59 m_arrOrderedIDs = arrOrderedIDs; 60 } 61 62 64 67 public int compare( 68 Object o1, 69 Object o2 70 ) 71 { 72 int iReturn = 0; 73 74 if ((o1 instanceof DataObject) && (o2 instanceof DataObject)) 75 { 76 if (m_arrOrderedIDs != null) 77 { 78 int i1 = ((DataObject) o1).getId(); 79 int i2 = ((DataObject) o2).getId(); 80 81 if (i1 != i2) 82 { 83 int iCounter = 0; 84 85 while ((iReturn == 0) && (iCounter < m_arrOrderedIDs.length)) 86 { 87 if (m_arrOrderedIDs[iCounter] == i1) 88 { 89 iReturn = -1; 90 } 91 else if (m_arrOrderedIDs[iCounter] == i2) 92 { 93 iReturn = 1; 94 } 95 iCounter++; 96 } 97 } 98 } 99 else 100 { 101 int i1 = ((DataObject) o1).getId(); 102 int i2 = ((DataObject) o2).getId(); 103 104 if (i1 < i2) 105 { 106 iReturn = -1; 107 } 108 else if (i1 > i2) 109 { 110 iReturn = 1; 111 } 112 else 113 { 114 iReturn = 0; 115 } 116 } 117 } 118 119 return iReturn; 120 } 121 } 122 | Popular Tags |