package com.javarush.test.level14.lesson08.home07;

import java.util.ArrayList;
import java.util.List;

/* Клининговый центр
Клининговый центр
1. Реализовать метод cleanAllApartaments.
Для каждого объекта из apartaments:
2. Для однокомнатных квартир (Apt1Room) вызвать метод clean1Room.
т.е. если объект типа Apt1Room, то вызвать у него метод clean1Room.
3. Для двухкомнатных квартир (Apt2Room) вызвать метод clean2Rooms
т.е. если объект типа Apt2Room, то вызвать у него метод clean2Rooms.
4. Для трехкомнатных квартир (Apt3Room) вызвать метод clean3Rooms
т.е. если объект типа Apt3Room, то вызвать у него метод clean3Rooms.
*/
public class Solution
{
    public static void main(String[] args)
    {
        List<Apartament> apartaments = new ArrayList<Apartament>();
        apartaments.add(new Apt1Room());
        apartaments.add(new Apt2Room());
        apartaments.add(new Apt3Room());

        cleanAllApartaments(apartaments);
    }

    public static void cleanAllApartaments(List<Apartament> apartaments)
    {
        //написать тут вашу реализацию пунктов 1-4
        for (Apartament list : apartaments)
        {
            if (list instanceof Apt1Room) Apt1Room.clean1Room();            //проверка объекта, вызов метода в классе.
            if (list instanceof Apt2Room) Apt2Room.clean2Rooms();
            if (list instanceof Apt3Room) Apt3Room.clean3Rooms();
        }

    }

    static interface Apartament
    {
    }

    static class Apt1Room implements Apartament
    {
        static void clean1Room()                    //пришлось сделать static
        {
            System.out.println("1 room is cleaned");
        }
    }

    static class Apt2Room implements Apartament
    {
        static void clean2Rooms()
        {
            System.out.println("2 rooms are cleaned");
        }
    }

    static class Apt3Room implements Apartament
    {
        static void clean3Rooms()
        {
            System.out.println("3 rooms are cleaned");
        }


    }
}