1
2
3
4
5
6
7
8
9 package net.kwfgrid.gwes.prorater;
10
11 import net.kwfgrid.gwes.XMLDB;
12 import net.kwfgrid.gwes.exception.DatabaseException;
13 import org.apache.log4j.Logger;
14
15 import java.util.ArrayList;
16
17
18
19
20
21
22
23 public class Node implements Comparable {
24
25
26
27
28 final static Logger logger = Logger.getLogger(Node.class);
29
30
31
32
33 String hostname;
34
35
36
37
38 ArrayList<Alternative> alternatives;
39
40
41
42
43 public float quality;
44
45 public Node(String name) {
46 alternatives = new ArrayList<Alternative>();
47 hostname = name;
48 }
49
50 void add(Alternative alternative) {
51 alternative.operationCandidate.setQuality(quality);
52 alternative.operationCandidate.setSelected(false);
53 alternatives.add(alternative);
54 }
55
56
57 public void setQuality(float quality) {
58 this.quality = quality;
59 logger.debug(hostname + ": " + quality);
60 }
61
62 void updateQuality(float oldQuality) {
63 try {
64 quality = XMLDB.getInstance().getHardwareQuality(hostname);
65 logger.debug("Retrieved quality for resource "+ hostname + ": quality=" + quality);
66 } catch (DatabaseException e) {
67 quality = oldQuality;
68 logger.warn("Could not connect to resource database. Using old quality="+quality+" for resource "+ hostname + ". "+e);
69 }
70 }
71
72 public int compareTo(Object o)
73 {
74 float difference = quality - ((Node) o).quality;
75 if (difference > 0) return 1;
76 if (difference < 0) return -1;
77 return 0;
78 }
79
80
81 }