/**
 * TSIOCA 06/07
 * 
 * ConstruyeNombre - Código de ejemplo
 **/

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class ConstruyeNombre {
    String nombre="";
    String apellidos="";

    public void ponNombre(String nombre) {
	this.nombre=nombre;
    }

    public void ponApellidos(String apellidos) {
	this.apellidos=apellidos;
    }

    public void printEstado() { 
	System.out.println("Te llamas: "+nombre+" "+apellidos);
    }

    // Lee una línea de texto introducida desde el teclado
    //
    // Entrada: No posee
    // Salida:  Línea de texto leída
    public String pedirEntrada(String mensaje) {
	BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	String entrada=null;
	
	try {
	    // Con este bucle, nos aseguramos de que hemos recibido alguna entrada
	    // a través del teclado
	    while ((entrada==null)||(!(entrada.length()>0))) {
		System.out.print(mensaje);
		
		// Lee una línea de texto introducida por el teclado
		entrada=in.readLine();
	    }
	} catch (java.io.IOException ioe) {
	    System.err.println("Error al leer entrada desde el teclado");
	    entrada=null;
	}
	return(entrada);
    }

    public static void main(String args[]) {
	String nombre, apellido1, apellido2;
	ConstruyeNombre c = new ConstruyeNombre();

	if (args.length!=0) {
	    System.out.println("Parámetros incorrectos:");
	    System.out.println("  java ConstruyeNombre");
	    System.exit(0);
	}

	nombre=c.pedirEntrada("Escribe tu nombre: ");
	apellido1=c.pedirEntrada("Escribe tu primer apellido: ");
	apellido2=c.pedirEntrada("Escribe tu segundo apellido: ");

	c.ponNombre(nombre);
	c.ponApellidos(apellido1+" "+apellido2);

	c.printEstado();

	// Finalización correcta
	System.exit(0);
    }
}

