]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/config/HexColor.java
Allow colors to be configured
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / config / HexColor.java
1 package com.irtimaled.bbor.client.config;
2
3 public class HexColor {
4     private final String value;
5     private final boolean hasAlpha;
6
7     private HexColor(String value, boolean hasAlpha) {
8         this.value = value;
9         this.hasAlpha = hasAlpha;
10     }
11
12     public static HexColor from(String value) {
13         String lowerValue = value.toLowerCase();
14         if (lowerValue.length() == 7 &&
15                 lowerValue.matches("#[0-9a-f]{6}")) return new HexColor(lowerValue, false);
16         if (lowerValue.length() == 9 &&
17                 lowerValue.matches("#[0-9a-f]{8}")) return new HexColor(lowerValue, true);
18
19         return null;
20     }
21
22     public String getValue() {
23         return value;
24     }
25
26     public boolean hasAlpha() {
27         return hasAlpha;
28     }
29
30     @Override
31     public String toString() {
32         return getValue();
33     }
34
35     @Override
36     public int hashCode() {
37         return value.hashCode();
38     }
39
40     @Override
41     public boolean equals(Object obj) {
42         if (this == obj) return true;
43         if (obj == null || getClass() != obj.getClass()) return false;
44         HexColor hexColor = (HexColor) obj;
45         return value.equals(hexColor.value);
46     }
47 }