Untitled

mail@pastecode.io avatar
unknown
java
a year ago
3.5 kB
9
Indexable
package com.epam.rd.contactbook;

public class Contact {
    public String contactName;
    public static int count = 1;
//    public static Contact[]  info;
    public Contact(String contactName) {
        this.contactName = contactName;
//        info = new Contact[count+1];
//        info[count] = this;
//        count++;

    }

    public void rename(String newName) {
        if (newName != null && !newName.isEmpty()){
            contactName = newName;
        }
    }

    private class NameContactInfo implements ContactInfo{
        @Override
        public String getTitle() {
            return "Name: ";
        }

        @Override
        public String getValue() {
            return contactName;
        }
    }

    public static class Email implements ContactInfo{
        String email;
        String domain;

        public Email(String email, String domain) {
            this.email = email;
            this.domain = domain;
        }

        @Override
        public String getTitle() {
            return "Email";
        }

        @Override
        public String getValue() {
            return email + "@" + domain;
        }
    }
    public static class Social implements ContactInfo{
        String title;
        String id;
        public Social(String title, String id) {
            this.title = title;
            this.id = id;
        }

        @Override
        public String getTitle() {
            return title;
        }

        @Override
        public String getValue() {
            return id;
        }
    }

    public Email addEmail(String localPart, String domain) {
        count++;
        return new Email(localPart, domain);
    }


    public Email addEpamEmail(String firstname, String lastname) {
        count++;
        String fullname = firstname + "_" + lastname;


        Email epamEmail = new Email(fullname,"epam.com") {

            @Override
            public String getTitle() {
                return "Epam Email";
            }


        };
        return epamEmail;
    }

    public ContactInfo addPhoneNumber(int code, String number) {
        count++;
        ContactInfo phoneNumber = new ContactInfo() {
            @Override
            public String getTitle() {
                return "Tel";
            }

            @Override
            public String getValue() {
                return "+" + code + " " + number;
            }
        };
        return phoneNumber;
    }

    public Social addTwitter(String twitterId) {
        count++;
        Social twitter = new Social("Twitter", twitterId){
        };
        return twitter;
    }

    public Social addInstagram(String instagramId) {
        count++;
        Social instagram = new Social("Instagram", instagramId){
        };
        return instagram;
    }

    public Social addSocialMedia(String title, String id) {
        count++;
        Social socialMedia = new Social(title, id){
        };
        return socialMedia;
    }

    public ContactInfo[] getInfo() {

        ContactInfo[] info = new ContactInfo[count];

//        info[0] = (ContactInfo) this;

//          return (ContactInfo[]) info;
//        ContactInfo[] contactInfo = {Contact.NameContactInfo.getValue(), Contact.Email.getValue(), Contact.Social.getValue()};
//        return contactInfo;
        return info;
    }

}