// -*- coding: utf-8 -*-
#ifndef __NOMBRE__H__
#define __NOMBRE__H__

#ifdef WIN32
#ifdef NOMBRE_EXPORTS
#define NOMBRE_API __declspec(dllexport)
#else
#define NOMBRE_API __declspec(dllimport)
#endif
#else
#define NOMBRE_API
#endif

#include <QString>

/** \brief Abstracci&oacute;n para el manejo de nombre completos (nombre de
 *         pila y apellidos)
 *
 * La clase Nombre sirve para facilitar el manejo de los nombres */
class NOMBRE_API Nombre {
public:
	/** Constructor por defecto */
	Nombre();
	/** Constructor
	 * @param nom Nombre
	 * @param apep Apellido paterno
	 * @param apem Apellido materno */
	Nombre(QString const & nom, QString const & apep, QString const & apem);
	/** Destructor por defecto */
	~Nombre();

	/** Obtiene el nombre de pila
	 * @return El valor de la variable nom */
	QString const & nombre() const;
	/** Obtiene el apellido paterno
	 * @return El valor de la variable apep */
	QString const & apellidop() const;
	/** Obtiene el apellido materno
	 * @return El valor de la variable apem */
	QString const & apellidom() const;

	/** Define el nombre de pila
	 * @param nom Valor para la variable nom */
	void nombre(QString const & nom);
	/** Define el apellido paterno
	 * @param apep Valor para la variable apep */
	void apellidop(QString const & apep);
	/** Define el apellido materno
	 * @param apem Valor para la variable apem */
	void apellidom(QString const & apem);

private:
	/// Almacena el nombre de pila
	QString m_nom;
	/// Almacena el apellido paterno
	QString m_apep;
	/// Almacena el apellido materno
	QString m_apem;
};

#endif
