from person_10 import Person, Manager           # Klasy z przykładu 28.10

class Department:
    def __init__(self, *args):
        self.members = list(args)               # Zarządzanie listą obiektów

    def addMember(self, person):
        self.members.append(person)

    def giveRaises(self, percent):              # Zastosowanie metod do wszystkich obiektów
      for person in self.members:

        for person in self.members:
            person.giveRaise(percent)

    def showAll(self):                          # Wyświetlenie wszystkich obiektów zagnieżdżonych
        for person in self.members:
            print(person)

if __name__ == '__main__':
    bob = Person('Robert Zielony')
    anna = Person('Anna Czerwona', job='programista', pay=100000)
    tom = Manager('Tomasz Czarny', 50000)

    development = Department(bob, anna)          # Osadzenie obiektów w kompozycie
    development.addMember(tom)
    development.giveRaises(.10)                 # Wykonuje metodę giveRaise osadzonych obiektów
    development.showAll()                       # Wykonuje metody __repr__ osadzonych obiektów

