Package phonetalks.entities.subscriber

Source Code of phonetalks.entities.subscriber.SubscriberEntry

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package phonetalks.entities.subscriber;

import java.io.Serializable;
import phonetalks.entities.calls.PhoneCall;
import phonetalks.exceptions.InvalidNumberException;
import phonetalks.logic.PhoneChecker;

/**
*
* @author Платон
*/
public class SubscriberEntry
        extends CallsHistory
        implements Serializable, Comparable<SubscriberEntry> {

    private Subscriber subscriber;
    private String phoneNumber = "";
    private long totalTime;

    public SubscriberEntry() {};

    public SubscriberEntry(Subscriber subscriber, String number) {
        this.subscriber = subscriber;
        number = number.trim();
        if (!PhoneChecker.isNumberCorrect(number)) {
            throw new InvalidNumberException("Cannot create entry, number is bad-formatted.");
        }
        this.phoneNumber = number;
    }

    public boolean addCall(PhoneCall call) {
        if (call == null) {
            return false;
        }
        setTotalTime(getTotalTime() + call.getCallDuration());
        add(call);
        return true;
    }

    public boolean removeCall(PhoneCall call) {
        if (call == null) {
            return false;
        }
        PhoneCall t = poll();
        if (t == null) {
            return false;
        }
        setTotalTime(getTotalTime() - t.getCallDuration());
        return true;
    }

    /**
     * @return the subscriber
     */
    public Subscriber getSubscriber() {
        return subscriber;
    }

    /**
     * @param subscriber the subscriber to set
     */
    public void setSubscriber(Subscriber subscriber) {
        this.subscriber = subscriber;
    }

    /**
     * @return the phoneNumber
     */
    public String getPhoneNumber() {
        return phoneNumber;
    }

    /**
     * @param phoneNumber the phoneNumber to set
     */
    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    /**
     * @return the totalTime
     */
    public long getTotalTime() {
        return totalTime;
    }

    /**
     * @param totalTime the totalTime to set
     */
    public void setTotalTime(long totalTime) {
        this.totalTime = totalTime;
    }

    @Override
    public String toString() {
        String result = "";
        result += getClass().getName()+
                "[name="+getSubscriber().toString()+
                ", "+getPhoneNumber()+", totalTime="+
                getTotalTime()+"]";
        return result;
    }

    @Override
    public int compareTo(SubscriberEntry o) {
        return this.getPhoneNumber().compareTo(o.getPhoneNumber());
    }
}
TOP

Related Classes of phonetalks.entities.subscriber.SubscriberEntry

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.