/** * Copyright © 2016-2017 The Thingsboard Authors * * 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.thingsboard.server.common.data; import org.thingsboard.server.common.data.id.UUIDBased; public abstract class ContactBased<I extends UUIDBased> extends SearchTextBased<I> { private static final long serialVersionUID = 5047448057830660988L; protected String country; protected String state; protected String city; protected String address; protected String address2; protected String zip; protected String phone; protected String email; public ContactBased() { super(); } public ContactBased(I id) { super(id); } public ContactBased(ContactBased<I> contact) { super(contact); this.country = contact.getCountry(); this.state = contact.getState(); this.city = contact.getCity(); this.address = contact.getAddress(); this.address2 = contact.getAddress2(); this.zip = contact.getZip(); this.phone = contact.getPhone(); this.email = contact.getEmail(); } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getAddress2() { return address2; } public void setAddress2(String address2) { this.address2 = address2; } public String getZip() { return zip; } public void setZip(String zip) { this.zip = zip; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public int hashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + ((address == null) ? 0 : address.hashCode()); result = prime * result + ((address2 == null) ? 0 : address2.hashCode()); result = prime * result + ((city == null) ? 0 : city.hashCode()); result = prime * result + ((country == null) ? 0 : country.hashCode()); result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((phone == null) ? 0 : phone.hashCode()); result = prime * result + ((state == null) ? 0 : state.hashCode()); result = prime * result + ((zip == null) ? 0 : zip.hashCode()); return result; } @SuppressWarnings("rawtypes") @Override public boolean equals(Object obj) { if (this == obj) return true; if (!super.equals(obj)) return false; if (getClass() != obj.getClass()) return false; ContactBased other = (ContactBased) obj; if (address == null) { if (other.address != null) return false; } else if (!address.equals(other.address)) return false; if (address2 == null) { if (other.address2 != null) return false; } else if (!address2.equals(other.address2)) return false; if (city == null) { if (other.city != null) return false; } else if (!city.equals(other.city)) return false; if (country == null) { if (other.country != null) return false; } else if (!country.equals(other.country)) return false; if (email == null) { if (other.email != null) return false; } else if (!email.equals(other.email)) return false; if (phone == null) { if (other.phone != null) return false; } else if (!phone.equals(other.phone)) return false; if (state == null) { if (other.state != null) return false; } else if (!state.equals(other.state)) return false; if (zip == null) { if (other.zip != null) return false; } else if (!zip.equals(other.zip)) return false; return true; } }