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