@Override
  public void validate() {

    if (!isRequested()) {
      if (solicitud.getSolicitante().trim().isEmpty()) {
        addFieldError(
            "solicitante", error.getProperties().getProperty("error.suscripcion.solicitante"));
        setInvalid(true);
      }
      if (!solicitud.getSolicitante().toUpperCase().matches(REGEX_TITLE)) {
        addFieldError("solicitante", error.getProperties().getProperty("error.regex.title"));
        setInvalid(true);
      }
      if (solicitud.getCargo().trim().isEmpty()) {
        addFieldError("cargo", error.getProperties().getProperty("error.suscripcion.cargo"));
        setInvalid(true);
      }
      if (!solicitud.getCargo().toUpperCase().matches(REGEX_TITLE)) {
        addFieldError("cargo", error.getProperties().getProperty("error.regex.title"));
        setInvalid(true);
      }
      if (solicitud.getCorreo().trim().isEmpty()) {
        addFieldError("correo", error.getProperties().getProperty("error.suscripcion.email"));
        setInvalid(true);
      }
      if (!solicitud.getCorreo().matches(REGEX_EMAIL)) {
        addFieldError("correo", error.getProperties().getProperty("error.regex.email"));
        setInvalid(true);
      }
      if (solicitud.getTelefono().trim().isEmpty()) {
        addFieldError("telefono", error.getProperties().getProperty("error.suscripcion.telefono"));
        setInvalid(true);
      }
      if (solicitud.getTelefono().length() > 0 && solicitud.getTelefono().length() < 7) {
        addFieldError(
            "telefono", error.getProperties().getProperty("error.suscripcion.telefono.digit"));
        setInvalid(true);
      }
      if (!solicitud.getTelefono().matches("\\d.*") && !solicitud.getTelefono().trim().isEmpty()) {
        addFieldError(
            "telefono", error.getProperties().getProperty("error.suscripcion.telefono.regex"));
        setInvalid(true);
      }
      if (solicitud.getMotivo_solicitante().trim().isEmpty()) {
        addFieldError("motivo", error.getProperties().getProperty("error.suscripcion.motivo"));
        setInvalid(true);
      }
      if (!solicitud.getMotivo_solicitante().matches(REGEX_DESCRIPTION)) {
        addFieldError("motivo", error.getProperties().getProperty("error.regex.description"));
        setInvalid(true);
      }
    }
    if (isInvalid()) prepararSuscripcion();
    else solicitarSuscripcion();
  }
  // TODO Mandar notificación por correo al ente proveedor. Un mensaje
  // cualquier para ir probando...
  public String solicitarSuscripcion() {

    if (!sessionValidate()) return INPUT;
    prepareRequest();
    solicitud.setTelefono(codigo + solicitud.getTelefono());
    create(solicitud);
    setSuscripcion_form(false);
    addActionMessage("Su solicitud de suscripción ha sido procesada.");
    System.out.println(solicitud.toString());
    return SUCCESS;
  }