/*
 * JPA entity Metadaten
 *
 */
package de.ivu.elect.business.email.entity;

import javax.inject.Inject;
import javax.inject.Named;

import de.ivu.elect.business.email.entity.EmailConstants;
import de.ivu.elect.jee.faces.Messages;

@Named(EmailMeta.COMPONENT_NAME)
@javax.enterprise.context.ApplicationScoped // ELECT-7845
public class EmailMeta implements de.ivu.elect.jee.entity.Meta
{

  private static final long serialVersionUID = 1L;

  public static final String COMPONENT_NAME = "emailMeta";

  @Inject
  private transient Messages messages;

  public EmailMeta() {
      super();
  }

  protected String getMessage(String msgKey, Object... params) {
    return messages.getMessageForMessageKey(msgKey, params);
  }

  @Override
  public String getEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_ENTITY_EINZAHL;
  }

  @Override
  public  String getMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_ENTITY_MEHRZAHL;
  }


  @Override
  public String getEinzahlMessage() {
    return getMessage(getEinzahlMessageKey());
  }

  @Override
  public String getMehrzahlMessage(){
    return getMessage(getMehrzahlMessageKey());
  }



  public String getAnzahlSendeversucheEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_ANZAHL_SENDEVERSUCHE_EINZAHL;
  }

  public String getAnzahlSendeversucheMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_ANZAHL_SENDEVERSUCHE_MEHRZAHL;
  }


  public String getAnzahlSendeversucheEinzahlMessage(){
    return getMessage(getAnzahlSendeversucheEinzahlMessageKey());
  }

  public String getAnzahlSendeversucheMehrzahlMessage(){
    return getMessage(getAnzahlSendeversucheMehrzahlMessageKey());
  }



  public boolean isAnzahlSendeversucheRequired() {
    return !EmailConstants.ANZAHL_SENDEVERSUCHE_NULLABLE;
  }

  public java.lang.Long getAnzahlSendeversucheDefaultValue() {
    return EmailConstants.ANZAHL_SENDEVERSUCHE_DEFAULT_VALUE;
  }

  public int getAnzahlSendeversucheMaxLength() {
    return EmailConstants.ANZAHL_SENDEVERSUCHE_MAX_LENGTH;
  }

  public long getAnzahlSendeversucheMinValue() {
    return EmailConstants.ANZAHL_SENDEVERSUCHE_MIN_VALUE;
  }

  public long getAnzahlSendeversucheMaxValue() {
    return EmailConstants.ANZAHL_SENDEVERSUCHE_MAX_VALUE;
  }

  public String getEmpfaengerEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_EMPFAENGER_EINZAHL;
  }

  public String getEmpfaengerMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_EMPFAENGER_MEHRZAHL;
  }


  public String getEmpfaengerEinzahlMessage(){
    return getMessage(getEmpfaengerEinzahlMessageKey());
  }

  public String getEmpfaengerMehrzahlMessage(){
    return getMessage(getEmpfaengerMehrzahlMessageKey());
  }



  public boolean isEmpfaengerRequired() {
    return !EmailConstants.EMPFAENGER_NULLABLE;
  }

  public java.lang.String getEmpfaengerDefaultValue() {
    return EmailConstants.EMPFAENGER_DEFAULT_VALUE;
  }

  public int getEmpfaengerMaxLength() {
    return EmailConstants.EMPFAENGER_MAX_LENGTH;
  }

  public String getFehlermeldungEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_FEHLERMELDUNG_EINZAHL;
  }

  public String getFehlermeldungMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_FEHLERMELDUNG_MEHRZAHL;
  }


  public String getFehlermeldungEinzahlMessage(){
    return getMessage(getFehlermeldungEinzahlMessageKey());
  }

  public String getFehlermeldungMehrzahlMessage(){
    return getMessage(getFehlermeldungMehrzahlMessageKey());
  }



  public boolean isFehlermeldungRequired() {
    return !EmailConstants.FEHLERMELDUNG_NULLABLE;
  }

  public java.lang.String getFehlermeldungDefaultValue() {
    return EmailConstants.FEHLERMELDUNG_DEFAULT_VALUE;
  }

  public int getFehlermeldungMaxLength() {
    return EmailConstants.FEHLERMELDUNG_MAX_LENGTH;
  }

  public String getInhaltEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_INHALT_EINZAHL;
  }

  public String getInhaltMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_INHALT_MEHRZAHL;
  }


  public String getInhaltEinzahlMessage(){
    return getMessage(getInhaltEinzahlMessageKey());
  }

  public String getInhaltMehrzahlMessage(){
    return getMessage(getInhaltMehrzahlMessageKey());
  }



  public boolean isInhaltRequired() {
    return !EmailConstants.INHALT_NULLABLE;
  }

  public java.lang.String getInhaltDefaultValue() {
    return EmailConstants.INHALT_DEFAULT_VALUE;
  }

  public int getInhaltMaxLength() {
    return EmailConstants.INHALT_MAX_LENGTH;
  }

  public String getLetzterSendeversuchEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_LETZTER_SENDEVERSUCH_EINZAHL;
  }

  public String getLetzterSendeversuchMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_LETZTER_SENDEVERSUCH_MEHRZAHL;
  }


  public String getLetzterSendeversuchEinzahlMessage(){
    return getMessage(getLetzterSendeversuchEinzahlMessageKey());
  }

  public String getLetzterSendeversuchMehrzahlMessage(){
    return getMessage(getLetzterSendeversuchMehrzahlMessageKey());
  }



  public boolean isLetzterSendeversuchRequired() {
    return !EmailConstants.LETZTER_SENDEVERSUCH_NULLABLE;
  }

  public java.util.Date getLetzterSendeversuchDefaultValue() {
    return EmailConstants.LETZTER_SENDEVERSUCH_DEFAULT_VALUE;
  }


  public String getStatusEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_STATUS_EINZAHL;
  }

  public String getStatusMehrzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_STATUS_MEHRZAHL;
  }


  public String getStatusEinzahlMessage(){
    return getMessage(getStatusEinzahlMessageKey());
  }

  public String getStatusMehrzahlMessage(){
    return getMessage(getStatusMehrzahlMessageKey());
  }



  public boolean isStatusRequired() {
    return !EmailConstants.STATUS_NULLABLE;
  }

  public de.ivu.elect.business.email.entity.EmailStatusType getStatusDefaultValue() {
    return EmailConstants.STATUS_DEFAULT_VALUE;
  }



  public String getEmailVorgangEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_EMAIL_VORGANG_ID_EINZAHL;
  }

  public String getEmailVorgangEinzahlMessage(){
    return getMessage(getEmailVorgangEinzahlMessageKey());
  }

  public boolean isEmailVorgangRequired() {
    return !EmailConstants.EMAIL_VORGANG_ID_NULLABLE;
  }


  public String getPersonendatenEinzahlMessageKey(){
    return EmailConstants.MESSAGE_KEY_PERSONENDATEN_ID_EINZAHL;
  }

  public String getPersonendatenEinzahlMessage(){
    return getMessage(getPersonendatenEinzahlMessageKey());
  }

  public boolean isPersonendatenRequired() {
    return !EmailConstants.PERSONENDATEN_ID_NULLABLE;
  }

}