1 /*
2 Copyright (C) 2006 Grid Systems, S.A.
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) any later version.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public
15 License along with this library; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 package com.gridsystems.nextgrid.api.pom;
19
20 import java.util.Comparator;
21
22 import nextgrid.api.pom.AbstractProcess;
23 import nextgrid.api.pom.Process;
24
25 /**
26 * Process comparator. It compares two processes by their priority field value.
27 *
28 * @author Rodrigo Ruiz
29 */
30 public class ProcessPriorityComparator implements Comparator<Process> {
31 /**
32 * {@inheritDoc}
33 */
34 public int compare(Process p0, Process p1) {
35 if (p0 == p1) {
36 return 0;
37 } else if (p0 instanceof AbstractProcess && p1 instanceof AbstractProcess) {
38 AbstractProcess ap0 = (AbstractProcess)p0;
39 AbstractProcess ap1 = (AbstractProcess)p1;
40 return ap0.getPriority() - ap1.getPriority();
41 } else {
42 throw new ClassCastException("Invalid process type");
43 }
44 }
45
46 }