001/*
002 *   Copyright 2020 Vonage
003 *
004 *   Licensed under the Apache License, Version 2.0 (the "License");
005 *   you may not use this file except in compliance with the License.
006 *   You may obtain a copy of the License at
007 *
008 *        http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *   Unless required by applicable law or agreed to in writing, software
011 *   distributed under the License is distributed on an "AS IS" BASIS,
012 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *   See the License for the specific language governing permissions and
014 *   limitations under the License.
015 */
016package com.vonage.client.voice;
017
018import com.fasterxml.jackson.annotation.JsonInclude;
019import org.apache.commons.lang3.builder.EqualsBuilder;
020import org.apache.commons.lang3.builder.HashCodeBuilder;
021
022@JsonInclude(value = JsonInclude.Include.NON_NULL)
023public class PhoneEndpoint implements Endpoint {
024    private String type = "phone";
025    private String number;
026    private String dtmfAnswer = null;
027
028    public PhoneEndpoint() {
029    }
030
031    public PhoneEndpoint(String number) {
032        this.number = number;
033    }
034
035    public PhoneEndpoint(String number, String dtmfAnswer) {
036        this.number = number;
037        this.dtmfAnswer = dtmfAnswer;
038    }
039
040    @Override
041    public String getType() {
042        return type;
043    }
044
045    @Override
046    public String toLog() {
047        return number;
048    }
049
050    public String getNumber() {
051        return number;
052    }
053
054    public void setNumber(String number) {
055        this.number = number;
056    }
057
058    public String getDtmfAnswer() {
059        return dtmfAnswer;
060    }
061
062    public void setDtmfAnswer(String dtmfAnswer) {
063        this.dtmfAnswer = dtmfAnswer;
064    }
065
066    @Override
067    public boolean equals(Object obj) {
068        if (obj == null) {
069            return false;
070        }
071        if (obj == this) {
072            return true;
073        }
074        if (obj.getClass() != getClass()) {
075            return false;
076        }
077        PhoneEndpoint rhs = (PhoneEndpoint) obj;
078        return new EqualsBuilder()
079                .append(this.type, rhs.type)
080                .append(this.number, rhs.number)
081                .append(this.dtmfAnswer, rhs.dtmfAnswer)
082                .isEquals();
083    }
084
085    @Override
086    public int hashCode() {
087        return new HashCodeBuilder(277, 11)
088                .append(this.type)
089                .append(this.number)
090                .append(this.dtmfAnswer)
091                .toHashCode();
092    }
093}