package com.codegym.task.task14.task1411;

import java.io.BufferedReader;
import java.io.InputStreamReader;

/*
User, loser, coder and programmer

*/

public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        Person person = null;
        String key = null;

        // Here's the loop for reading the keys. Item 1
        while (true)
        {
            // Create an object. Item 2
            key = reader.readLine();
            switch(key)
            {
                case "user":
                    person = new Person.User();
                    doWork(person); // Call doWork
                    // break;
                case "loser":
                    person = new Person.Loser();
                    doWork(person);
                    // break;
                case "coder":
                    person = new Person.Coder();
                    doWork(person);
                    // break;
                case "programmer":
                    person = new Person.Programmer();
                    doWork(person);
                    // break;
                default:
                    break;
            }
            if (!key.equals("user") || !key.equals("loser") || !key.equals("coder") || !key.equals("programmer"))
            {
                break;
            }
        }
    }

    public static void doWork(Person person) {
        // Item 3
        if (person instanceof Person.User) ((Person.User)person).live();
        else if (person instanceof Person.Loser) ((Person.Loser)person).doNothing();
        else if (person instanceof Person.Coder) ((Person.Coder)person).writeCode();
        else if (person instanceof Person.Programmer) ((Person.Programmer)person).enjoy();
    }
}