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