package jm14.ant;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.List;

import jm14.ant.model.Artigo;
import jm14.ant.model.ArtigosHome;
import jm14.ant.model.ServiceLocator;

public class Aplicacao {

	private static ServiceLocator serviceLocator = ServiceLocator.getInstance();
	
	public static void main(String[] args) throws Exception {
		
		ArtigosHome artigosHome = serviceLocator.getArtigosHome();	
		
		while (true) {
			System.out.println("Digite o numero da edicao ou enter para sair");
			BufferedReader reader =
				new BufferedReader(new InputStreamReader(System.in));
			String sEdicao = reader.readLine();
			if ( "".equals(sEdicao.trim()) ) {
				break;
			}
			int edicao = 0;
			try {
				edicao = Integer.parseInt(sEdicao);
				listaArtigos( artigosHome, edicao );
			} catch (NumberFormatException exc) {
				System.out.println(sEdicao + " nao e um numero!");
			} // try
		} // while
		
	} // main
	
	private static void listaArtigos( ArtigosHome artigosHome, int edicao ) {
		List artigos = artigosHome.listaArtigosPorEdicao( edicao );
		
		if ( artigos.isEmpty() )  {
			System.out.println( "Sem artigos para edicao " + edicao );
		} else {
			System.out.println( "Artigos na edicao " + edicao + ":" );
			Iterator iterator = artigos.iterator();
			while ( iterator.hasNext() ) {
				Artigo artigo = (Artigo) iterator.next();
				System.out.println( "\t" + artigo.getTitulo() + " (por " + artigo.getAutor() + " )" );
			} // while
		} // if		
		
	} // main
	
} // class
