1 package cz.cuni.amis.pogamut.sposh.elements;
2
3
4
5
6
7
8
9 @Deprecated
10 public class Freq {
11
12
13
14
15
16 public static Freq INFINITE = new Freq(0, FreqUnits.SECONDS);
17
18
19
20
21
22
23
24
25 public static int compare(long freq1, long freq2) {
26 if (freq1 < freq2) {
27 return -1;
28 }
29 if (freq1 == freq2) {
30 return 0;
31 }
32 return 1;
33 }
34
35 public static int compare(Freq freq1, Freq freq2) {
36 return compare(freq1.tick(), freq2.tick());
37 }
38
39
40
41
42
43 public enum FreqUnits {
44
45 HOURS("hours", 0),
46 MINUTES("minutes", 1),
47 SECONDS("seconds", 2),
48 NONE("none", 3),
49 HZ("hz", 4),
50 PM("pm", 5);
51
52 private final String name;
53 private final int id;
54
55 private FreqUnits(String name, int id) {
56 this.name = name;
57 this.id = id;
58 }
59
60 @Override
61 public String toString() {
62 return name;
63 }
64
65 public int getId() {
66 return id;
67 }
68 }
69
70
71 private FreqUnits units;
72 private double ammount;
73
74 Freq() {
75 this.ammount = 0;
76 this.units = FreqUnits.NONE;
77 }
78
79 Freq(double count, FreqUnits units) {
80 this.ammount = count;
81 this.units = units;
82 }
83
84 public Freq(Freq original) {
85 this.ammount = original.ammount;
86 this.units = original.units;
87 }
88
89 @Override
90 public String toString() {
91 if (!FreqUnits.NONE.equals(units)) {
92 return "(" + getUnits() + " " + getAmmount() + ")";
93 }
94 return "";
95 }
96
97 public FreqUnits getUnits() {
98 return units;
99 }
100
101 public void setUnits(FreqUnits units) {
102 this.units = units;
103 }
104
105 public double getAmmount() {
106 return ammount;
107 }
108
109 public void setAmmount(double ammount) {
110 this.ammount = ammount;
111 }
112
113
114
115
116
117 public long tick() {
118 switch (units) {
119 case HOURS:
120 return (long) (3600000L * ammount);
121 case MINUTES:
122 return (long) (60000L * ammount);
123 case SECONDS:
124 return (long) (1000L * ammount);
125 case HZ:
126 return (long) (1000L / ammount);
127 case PM:
128 return (long) (60000 / ammount);
129 case NONE:
130 return (long) ammount;
131 default:
132 throw new IllegalStateException("Invalid units.");
133 }
134 }
135 }