class AbstractNacaoBuilder(NacaoBuilder):

    nacao = None
    fabrica = FactoryReflection()

    def criarNacao(self, nome):

        self.nacao = Nacao()
        self.nacao.setNome(nome)

    def fazerDefensores(self, listDefensores):

        num = len(listDefensores)
        cont = 0
        dados = []
        listDefensoresProntos = []

        while cont < num:

            dados = listDefensores[cont]

            defensor = self.fabrica.criar_guerreiro(dados[0])
            listDefensoresProntos.append(defensor)
            cont+=1

        self.nacao.setDefensores(listDefensoresProntos)

    def fazerOfensores(self, listOfensores):

        num = len(listOfensores)
        cont = 0
        dados = []
        listOfensoresProntos = []

        while cont < num:

            dados = listOfensores[cont]
            ofensor = self.fabrica.criar_guerreiro(dados[0])
            listOfensoresProntos.append(ofensor)
            cont+=1

        self.nacao.setOfensores(listOfensoresProntos)


    def getNacao(self):
        return self.nacao
class AbstractNacaoBuilder(NacaoBuilder):

    nacao = None
    fabrica = FactoryReflection()

    def criarNacao(self, nome):

        self.nacao = Nacao()
        self.nacao.setNome(nome)

    def fazerDefensores(self, listDefensores):

        iterador = Iterator_List(listDefensores)
        listDefensoresProntos = []

        while iterador.is_done() == False:

            tipo = iterador.current_item()
            defensor = self.fabrica.criar_guerreiro("Defensor", tipo[0], self.nacao)
            listDefensoresProntos.append(defensor)
            iterador.proximo()

        self.nacao.setDefensores(listDefensoresProntos)

    def fazerOfensores(self, listOfensores):

        iterador = Iterator_List(listOfensores)
        listOfensoresProntos = []

        while iterador.is_done() == False:

            tipo = iterador.current_item()
            ofensor = self.fabrica.criar_guerreiro("Ofensor", tipo[0], self.nacao)
            listOfensoresProntos.append(ofensor)
            iterador.proximo()

        self.nacao.setOfensores(listOfensoresProntos)


    def getNacao(self):
        return self.nacao
    def criarNacao(self, nome):

        self.nacao = Nacao()
        self.nacao.setNome(nome)