/
FullHalfPair.java
104 lines (93 loc) · 3 KB
/
FullHalfPair.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
* Copyright (C) 2013-2017 NTT DATA Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.terasoluna.gfw.common.fullhalf;
import java.io.Serializable;
/**
* Pair of fullwidth string and halfwidth string.
* @since 5.1.0
*/
public final class FullHalfPair implements Serializable {
/**
* fullwidth of the pair
*/
private final String fullwidth;
/**
* halfwidth of the pair
*/
private final String halfwidth;
/**
* Constructor.
* @param fullwidth fullwidth of the pair. must not be null and the length must be 1.
* @param halfwidth halfwidth of the pair. must not be null and the length must be 1 or 2.
* @throws IllegalArgumentException if fullwidth or halfwidth is null or the length is invalid.
*/
public FullHalfPair(String fullwidth, String halfwidth) {
if (fullwidth == null || fullwidth.length() != 1) {
throw new IllegalArgumentException("fullwidth must be 1 length string (fullwidth = "
+ fullwidth + ")");
}
if (halfwidth == null
|| (halfwidth.length() != 1 && halfwidth.length() != 2)) {
throw new IllegalArgumentException("halfwidth must be 1 or 2 length string (halfwidth = "
+ halfwidth + ")");
}
this.fullwidth = fullwidth;
this.halfwidth = halfwidth;
}
/**
* returns fullwidth of the pair
* @return fullwidth of the pair
*/
public String fullwidth() {
return this.fullwidth;
}
/**
* returns halfwidth of the pair
* @return halfwidth of the pair
*/
public String halfwidth() {
return this.halfwidth;
}
/**
* returns whether the given object equals to this instance
* @param o object to check
* @return whether the given object equals to this instance
*/
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
FullHalfPair that = (FullHalfPair) o;
if (!fullwidth.equals(that.fullwidth)) {
return false;
}
return halfwidth.equals(that.halfwidth);
}
/**
* returns hash code of this instance
* @return hash code of this instance
*/
@Override
public int hashCode() {
int result = fullwidth.hashCode();
result = 31 * result + halfwidth.hashCode();
return result;
}
}