001// ______________________________________________________
002// Generated by sql2java - https://github.com/10km/sql2java-2-6-7 (custom branch) 
003// modified by guyadong from
004// sql2java original version https://sourceforge.net/projects/sql2java/ 
005// JDBC driver used at code generation time: com.mysql.jdbc.Driver
006// template: comparator.java.vm
007// ______________________________________________________
008package net.gdface.facelog.db;
009
010import java.util.Comparator;
011
012
013/**
014 * Comparator class is used to sort the DeviceBean objects.
015 * @author sql2java
016 */
017public class DeviceComparator implements Comparator<DeviceBean>,Constant
018{
019    /**
020     * Holds the field on which the comparison is performed.
021     */
022    private int iType;
023    /**
024     * Value that will contain the information about the order of the sort: normal or reversal.
025     */
026    private boolean bReverse;
027
028    /**
029     * Constructor class for DeviceComparator.
030     * <br>
031     * Example:
032     * <br>
033     * <code>Arrays.sort(pArray, new DeviceComparator(Constant.FL_DEVICE_ID_ID, bReverse));</code>
034     *
035     * @param iType the field from which you want to sort
036     * <br>
037     * Possible values are:
038     * <ul>
039     *   <li>{@link Constant#FL_DEVICE_ID_ID}
040     *   <li>{@link Constant#FL_DEVICE_ID_GROUP_ID}
041     *   <li>{@link Constant#FL_DEVICE_ID_NAME}
042     *   <li>{@link Constant#FL_DEVICE_ID_PRODUCT_NAME}
043     *   <li>{@link Constant#FL_DEVICE_ID_MODEL}
044     *   <li>{@link Constant#FL_DEVICE_ID_VENDOR}
045     *   <li>{@link Constant#FL_DEVICE_ID_MANUFACTURER}
046     *   <li>{@link Constant#FL_DEVICE_ID_MADE_DATE}
047     *   <li>{@link Constant#FL_DEVICE_ID_VERSION}
048     *   <li>{@link Constant#FL_DEVICE_ID_USED_SDKS}
049     *   <li>{@link Constant#FL_DEVICE_ID_SERIAL_NO}
050     *   <li>{@link Constant#FL_DEVICE_ID_MAC}
051     *   <li>{@link Constant#FL_DEVICE_ID_DIRECTION}
052     *   <li>{@link Constant#FL_DEVICE_ID_REMARK}
053     *   <li>{@link Constant#FL_DEVICE_ID_EXT_BIN}
054     *   <li>{@link Constant#FL_DEVICE_ID_EXT_TXT}
055     *   <li>{@link Constant#FL_DEVICE_ID_CREATE_TIME}
056     *   <li>{@link Constant#FL_DEVICE_ID_UPDATE_TIME}
057     * </ul>
058     */
059    public DeviceComparator(int iType)
060    {
061        this(iType, false);
062    }
063
064    /**
065     * Constructor class for DeviceComparator.
066     * <br>
067     * Example:
068     * <br>
069     * <code>Arrays.sort(pArray, new DeviceComparator(Constant.FL_DEVICE_ID_ID, bReverse));</code>
070     *
071     * @param iType the field from which you want to sort.
072     * <br>
073     * Possible values are:
074     * <ul>
075     *   <li>{@link Constant#FL_DEVICE_ID_ID})
076     *   <li>{@link Constant#FL_DEVICE_ID_GROUP_ID})
077     *   <li>{@link Constant#FL_DEVICE_ID_NAME})
078     *   <li>{@link Constant#FL_DEVICE_ID_PRODUCT_NAME})
079     *   <li>{@link Constant#FL_DEVICE_ID_MODEL})
080     *   <li>{@link Constant#FL_DEVICE_ID_VENDOR})
081     *   <li>{@link Constant#FL_DEVICE_ID_MANUFACTURER})
082     *   <li>{@link Constant#FL_DEVICE_ID_MADE_DATE})
083     *   <li>{@link Constant#FL_DEVICE_ID_VERSION})
084     *   <li>{@link Constant#FL_DEVICE_ID_USED_SDKS})
085     *   <li>{@link Constant#FL_DEVICE_ID_SERIAL_NO})
086     *   <li>{@link Constant#FL_DEVICE_ID_MAC})
087     *   <li>{@link Constant#FL_DEVICE_ID_DIRECTION})
088     *   <li>{@link Constant#FL_DEVICE_ID_REMARK})
089     *   <li>{@link Constant#FL_DEVICE_ID_EXT_BIN})
090     *   <li>{@link Constant#FL_DEVICE_ID_EXT_TXT})
091     *   <li>{@link Constant#FL_DEVICE_ID_CREATE_TIME})
092     *   <li>{@link Constant#FL_DEVICE_ID_UPDATE_TIME})
093     * </ul>
094     *
095     * @param bReverse set this value to true, if you want to reverse the sorting results
096     */
097    public DeviceComparator(int iType, boolean bReverse)
098    {
099        this.iType = iType;
100        this.bReverse = bReverse;
101    }
102
103    @Override
104    public int compare(DeviceBean b1, DeviceBean b2)
105    {
106        int iReturn = 0;
107        switch(iType)
108        {
109            case FL_DEVICE_ID_ID:
110                if (b1.getId() == null && b2.getId() != null) {
111                    iReturn = -1;
112                } else if (b1.getId() == null && b2.getId() == null) {
113                    iReturn = 0;
114                } else if (b1.getId() != null && b2.getId() == null) {
115                    iReturn = 1;
116                } else {
117                    iReturn = b1.getId().compareTo(b2.getId());
118                }
119                break;
120            case FL_DEVICE_ID_GROUP_ID:
121                if (b1.getGroupId() == null && b2.getGroupId() != null) {
122                    iReturn = -1;
123                } else if (b1.getGroupId() == null && b2.getGroupId() == null) {
124                    iReturn = 0;
125                } else if (b1.getGroupId() != null && b2.getGroupId() == null) {
126                    iReturn = 1;
127                } else {
128                    iReturn = b1.getGroupId().compareTo(b2.getGroupId());
129                }
130                break;
131            case FL_DEVICE_ID_NAME:
132                if (b1.getName() == null && b2.getName() != null) {
133                    iReturn = -1;
134                } else if (b1.getName() == null && b2.getName() == null) {
135                    iReturn = 0;
136                } else if (b1.getName() != null && b2.getName() == null) {
137                    iReturn = 1;
138                } else {
139                    iReturn = b1.getName().compareTo(b2.getName());
140                }
141                break;
142            case FL_DEVICE_ID_PRODUCT_NAME:
143                if (b1.getProductName() == null && b2.getProductName() != null) {
144                    iReturn = -1;
145                } else if (b1.getProductName() == null && b2.getProductName() == null) {
146                    iReturn = 0;
147                } else if (b1.getProductName() != null && b2.getProductName() == null) {
148                    iReturn = 1;
149                } else {
150                    iReturn = b1.getProductName().compareTo(b2.getProductName());
151                }
152                break;
153            case FL_DEVICE_ID_MODEL:
154                if (b1.getModel() == null && b2.getModel() != null) {
155                    iReturn = -1;
156                } else if (b1.getModel() == null && b2.getModel() == null) {
157                    iReturn = 0;
158                } else if (b1.getModel() != null && b2.getModel() == null) {
159                    iReturn = 1;
160                } else {
161                    iReturn = b1.getModel().compareTo(b2.getModel());
162                }
163                break;
164            case FL_DEVICE_ID_VENDOR:
165                if (b1.getVendor() == null && b2.getVendor() != null) {
166                    iReturn = -1;
167                } else if (b1.getVendor() == null && b2.getVendor() == null) {
168                    iReturn = 0;
169                } else if (b1.getVendor() != null && b2.getVendor() == null) {
170                    iReturn = 1;
171                } else {
172                    iReturn = b1.getVendor().compareTo(b2.getVendor());
173                }
174                break;
175            case FL_DEVICE_ID_MANUFACTURER:
176                if (b1.getManufacturer() == null && b2.getManufacturer() != null) {
177                    iReturn = -1;
178                } else if (b1.getManufacturer() == null && b2.getManufacturer() == null) {
179                    iReturn = 0;
180                } else if (b1.getManufacturer() != null && b2.getManufacturer() == null) {
181                    iReturn = 1;
182                } else {
183                    iReturn = b1.getManufacturer().compareTo(b2.getManufacturer());
184                }
185                break;
186            case FL_DEVICE_ID_MADE_DATE:
187                if (b1.getMadeDate() == null && b2.getMadeDate() != null) {
188                    iReturn = -1;
189                } else if (b1.getMadeDate() == null && b2.getMadeDate() == null) {
190                    iReturn = 0;
191                } else if (b1.getMadeDate() != null && b2.getMadeDate() == null) {
192                    iReturn = 1;
193                } else {
194                    iReturn = b1.getMadeDate().compareTo(b2.getMadeDate());
195                }
196                break;
197            case FL_DEVICE_ID_VERSION:
198                if (b1.getVersion() == null && b2.getVersion() != null) {
199                    iReturn = -1;
200                } else if (b1.getVersion() == null && b2.getVersion() == null) {
201                    iReturn = 0;
202                } else if (b1.getVersion() != null && b2.getVersion() == null) {
203                    iReturn = 1;
204                } else {
205                    iReturn = b1.getVersion().compareTo(b2.getVersion());
206                }
207                break;
208            case FL_DEVICE_ID_USED_SDKS:
209                if (b1.getUsedSdks() == null && b2.getUsedSdks() != null) {
210                    iReturn = -1;
211                } else if (b1.getUsedSdks() == null && b2.getUsedSdks() == null) {
212                    iReturn = 0;
213                } else if (b1.getUsedSdks() != null && b2.getUsedSdks() == null) {
214                    iReturn = 1;
215                } else {
216                    iReturn = b1.getUsedSdks().compareTo(b2.getUsedSdks());
217                }
218                break;
219            case FL_DEVICE_ID_SERIAL_NO:
220                if (b1.getSerialNo() == null && b2.getSerialNo() != null) {
221                    iReturn = -1;
222                } else if (b1.getSerialNo() == null && b2.getSerialNo() == null) {
223                    iReturn = 0;
224                } else if (b1.getSerialNo() != null && b2.getSerialNo() == null) {
225                    iReturn = 1;
226                } else {
227                    iReturn = b1.getSerialNo().compareTo(b2.getSerialNo());
228                }
229                break;
230            case FL_DEVICE_ID_MAC:
231                if (b1.getMac() == null && b2.getMac() != null) {
232                    iReturn = -1;
233                } else if (b1.getMac() == null && b2.getMac() == null) {
234                    iReturn = 0;
235                } else if (b1.getMac() != null && b2.getMac() == null) {
236                    iReturn = 1;
237                } else {
238                    iReturn = b1.getMac().compareTo(b2.getMac());
239                }
240                break;
241            case FL_DEVICE_ID_DIRECTION:
242                if (b1.getDirection() == null && b2.getDirection() != null) {
243                    iReturn = -1;
244                } else if (b1.getDirection() == null && b2.getDirection() == null) {
245                    iReturn = 0;
246                } else if (b1.getDirection() != null && b2.getDirection() == null) {
247                    iReturn = 1;
248                } else {
249                    iReturn = b1.getDirection().compareTo(b2.getDirection());
250                }
251                break;
252            case FL_DEVICE_ID_REMARK:
253                if (b1.getRemark() == null && b2.getRemark() != null) {
254                    iReturn = -1;
255                } else if (b1.getRemark() == null && b2.getRemark() == null) {
256                    iReturn = 0;
257                } else if (b1.getRemark() != null && b2.getRemark() == null) {
258                    iReturn = 1;
259                } else {
260                    iReturn = b1.getRemark().compareTo(b2.getRemark());
261                }
262                break;
263            case FL_DEVICE_ID_EXT_BIN:
264                if (b1.getExtBin() == null && b2.getExtBin() != null) {
265                    iReturn = -1;
266                } else if (b1.getExtBin() == null && b2.getExtBin() == null) {
267                    iReturn = 0;
268                } else if (b1.getExtBin() != null && b2.getExtBin() == null) {
269                    iReturn = 1;
270                } else {
271                    iReturn = b1.getExtBin().compareTo(b2.getExtBin());
272                }
273                break;
274            case FL_DEVICE_ID_EXT_TXT:
275                if (b1.getExtTxt() == null && b2.getExtTxt() != null) {
276                    iReturn = -1;
277                } else if (b1.getExtTxt() == null && b2.getExtTxt() == null) {
278                    iReturn = 0;
279                } else if (b1.getExtTxt() != null && b2.getExtTxt() == null) {
280                    iReturn = 1;
281                } else {
282                    iReturn = b1.getExtTxt().compareTo(b2.getExtTxt());
283                }
284                break;
285            case FL_DEVICE_ID_CREATE_TIME:
286                if (b1.getCreateTime() == null && b2.getCreateTime() != null) {
287                    iReturn = -1;
288                } else if (b1.getCreateTime() == null && b2.getCreateTime() == null) {
289                    iReturn = 0;
290                } else if (b1.getCreateTime() != null && b2.getCreateTime() == null) {
291                    iReturn = 1;
292                } else {
293                    iReturn = b1.getCreateTime().compareTo(b2.getCreateTime());
294                }
295                break;
296            case FL_DEVICE_ID_UPDATE_TIME:
297                if (b1.getUpdateTime() == null && b2.getUpdateTime() != null) {
298                    iReturn = -1;
299                } else if (b1.getUpdateTime() == null && b2.getUpdateTime() == null) {
300                    iReturn = 0;
301                } else if (b1.getUpdateTime() != null && b2.getUpdateTime() == null) {
302                    iReturn = 1;
303                } else {
304                    iReturn = b1.getUpdateTime().compareTo(b2.getUpdateTime());
305                }
306                break;
307            default:
308                throw new IllegalArgumentException("Type passed for the field is not supported");
309        }
310
311        return bReverse ? (-1 * iReturn) : iReturn;
312    }}