blob: a01b0bb573a31ea0c0639327cf4ce5c2e27fcf09 [file] [log] [blame]
/*
* Copyright 2014 The Apache Software Foundation.
*
* 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 opennlp.addons.geoentitylinker;
import java.util.Objects;
/**
* Stores an admin boundary down to the US county level. Only US places from the
* USGS Gazetteer will have county level info
*/
public class AdminBoundary {
private static final String NO_DATA_FOUND_VALUE = "NO_DATA_FOUND";
private final String countryCode;
private final String provinceCode;
private final String provinceName;
private final String countryName;
private final String countyName;
private final String countyCode;
private final String countryRegex;
private final String provinceRegex;
private final String countyRegex;
public AdminBoundary(String countryCode, String countryName, String provinceCode, String provinceName, String countyCode, String countyName,
String countryRegex, String provinceRegex, String countyRegex) {
this.countryCode = countryCode;
this.provinceCode = provinceCode;
this.provinceName = provinceName;
this.countryName = countryName;
this.countyName = countyName.equals("") ? NO_DATA_FOUND_VALUE : countyName;
this.countyCode = countyCode.equals("") ? NO_DATA_FOUND_VALUE : countyCode;
this.countryRegex = countryRegex;
this.provinceRegex = provinceRegex;
this.countyRegex = countyRegex;
}
public String getCountryCode() {
return countryCode;
}
public String getProvCode() {
return provinceCode;
}
public String getProvinceName() {
return provinceName;
}
public String getCountryName() {
return countryName;
}
public String getCountyName() {
return countyName;
}
public String getCountyCode() {
return countyCode;
}
@Override
public String toString() {
return "AdminBoundary{" + "countryCode=" + countryCode + ", provinceCode=" + provinceCode + ", provinceName=" + provinceName + ", countryName=" + countryName + ", countyName=" + countyName + ", countyCode=" + countyCode + '}';
}
@Override
public int hashCode() {
int hash = 7;
hash = 11 * hash + Objects.hashCode(this.countryCode);
hash = 11 * hash + Objects.hashCode(this.provinceCode);
hash = 11 * hash + Objects.hashCode(this.provinceName);
hash = 11 * hash + Objects.hashCode(this.countryName);
hash = 11 * hash + Objects.hashCode(this.countyName);
hash = 11 * hash + Objects.hashCode(this.countyCode);
return hash;
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final AdminBoundary other = (AdminBoundary) obj;
if (!Objects.equals(this.countryCode, other.countryCode)) {
return false;
}
if (!Objects.equals(this.provinceCode, other.provinceCode)) {
return false;
}
if (!Objects.equals(this.provinceName, other.provinceName)) {
return false;
}
if (!Objects.equals(this.countryName, other.countryName)) {
return false;
}
if (!Objects.equals(this.countyName, other.countyName)) {
return false;
}
if (!Objects.equals(this.countyCode, other.countyCode)) {
return false;
}
return true;
}
public String getProvinceCode() {
return provinceCode;
}
public String getCountryRegex() {
return countryRegex;
}
public String getProvinceRegex() {
return provinceRegex;
}
public String getCountyRegex() {
return countyRegex;
}
}