1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.html.impl;
16
17 import java.util.Objects;
18
19
20
21
22
23
24
25 @SuppressWarnings("PMD.AvoidDuplicateLiterals")
26 public class Color {
27 private final int red_;
28 private final int green_;
29 private final int blue_;
30 private final int alpha_;
31
32
33
34
35
36
37
38
39 public Color(final int red, final int green, final int blue) {
40 this(red, green, blue, 255);
41 }
42
43
44
45
46
47
48
49
50
51 public Color(final int red, final int green, final int blue, final int alpha) {
52 if (red < 0 || red > 255) {
53 throw new IllegalArgumentException("Color red value '" + red + " outside of expected range");
54 }
55 if (green < 0 || green > 255) {
56 throw new IllegalArgumentException("Color green value '" + green + " outside of expected range");
57 }
58 if (blue < 0 || blue > 255) {
59 throw new IllegalArgumentException("Color blue value '" + blue + " outside of expected range");
60 }
61 if (alpha < 0 || alpha > 255) {
62 throw new IllegalArgumentException("Color red value '" + alpha + " outside of expected range");
63 }
64
65 red_ = red;
66 green_ = green;
67 blue_ = blue;
68 alpha_ = alpha;
69 }
70
71
72
73
74
75
76 public int getRed() {
77 return red_;
78 }
79
80
81
82
83
84
85 public int getGreen() {
86 return green_;
87 }
88
89
90
91
92
93
94 public int getBlue() {
95 return blue_;
96 }
97
98
99
100
101
102
103 public int getAlpha() {
104 return alpha_;
105 }
106
107
108
109
110 @Override
111 public int hashCode() {
112 return Objects.hash(red_, green_, blue_, alpha_);
113 }
114
115
116
117
118 @Override
119 public boolean equals(final Object obj) {
120 if (this == obj) {
121 return true;
122 }
123 if (obj == null) {
124 return false;
125 }
126 if (getClass() != obj.getClass()) {
127 return false;
128 }
129
130 final Color other = (Color) obj;
131 if (alpha_ != other.alpha_) {
132 return false;
133 }
134 if (blue_ != other.blue_) {
135 return false;
136 }
137 if (green_ != other.green_) {
138 return false;
139 }
140 if (red_ != other.red_) {
141 return false;
142 }
143 return true;
144 }
145 }