/*
 * JPA DAO Template
 *
 *
 * Takatuka - Template fuer JPA DAO (Extended = ExtendedPersistenceContext ConversationScope (Group = EntityExtendedDAO.class)
 *
 */

package de.ivu.elect.business.wahlvorschlagsperson.boundary;

import javax.inject.Inject;

import de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPerson;
import de.ivu.elect.jee.entity.ExtendedDAO;

@javax.enterprise.context.RequestScoped
public class WahlvorschlagsPersonExtendedDAO extends AbstractWahlvorschlagsPersonDAO implements java.io.Serializable {

  private static final long serialVersionUID = 1L;

  @Inject
  transient ExtendedDAO extendedDAO;

  @Inject
  transient de.ivu.elect.presentation.system.ExtendedDAORequestCache cache;

  @Override
  protected javax.persistence.EntityManager getEntityManager() {
    return extendedDAO.getEntityManager();
  }

  @Override
  public void flush() {
    extendedDAO.flush();
  }

  public void flushNewTransaction() {
    extendedDAO.flushNewTransaction();
  }

/**
* Name: CountByWahlvorschlagAndTypNoFlush<br>
* Beschreibung: <br>
* EJBQL: select COUNT(o) from WahlvorschlagsPerson o WHERE o.wahlvorschlag = ?1 AND o.wahlvorschlagsPersonTyp IN (?2 )<br>
* SQL: <br>
*/
@Override
public java.lang.Long findByCountByWahlvorschlagAndTyp( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag,  @javax.annotation.Nonnull java.util.Collection<de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp> wahlvorschlagsPersonTypen) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByCountByWahlvorschlagAndTyp" ,  wahlvorschlag ,  wahlvorschlagsPersonTypen  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByCountByWahlvorschlagAndTyp(): Miss");
        }

        cache.put(key, super.findByCountByWahlvorschlagAndTyp( wahlvorschlag ,  wahlvorschlagsPersonTypen  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByCountByWahlvorschlagAndTyp(): Hit");
      }

      return (java.lang.Long) cache.lookup(key);
    }

    return super.findByCountByWahlvorschlagAndTyp( wahlvorschlag ,  wahlvorschlagsPersonTypen  );
}
/**
* Name: CountUnterstuetzerGeeignetByWahlvorschlagNoFlush<br>
* Beschreibung: <br>
* EJBQL: SELECT COUNT (wp) FROM WahlvorschlagsPerson wp where wp.wahlvorschlag = ?1 and wp.wahlvorschlagsPersonTyp = de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp.UNTERSTUETZER and wp.personStatus = de.ivu.elect.business.person.entity.PersonStatus.GEEIGNET<br>
* SQL: <br>
*/
@Override
public java.lang.Long findByCountUnterstuetzerGeeignetByWahlvorschlag( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByCountUnterstuetzerGeeignetByWahlvorschlag" ,  wahlvorschlag  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByCountUnterstuetzerGeeignetByWahlvorschlag(): Miss");
        }

        cache.put(key, super.findByCountUnterstuetzerGeeignetByWahlvorschlag( wahlvorschlag  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByCountUnterstuetzerGeeignetByWahlvorschlag(): Hit");
      }

      return (java.lang.Long) cache.lookup(key);
    }

    return super.findByCountUnterstuetzerGeeignetByWahlvorschlag( wahlvorschlag  );
}
/**
* Name: CountUnterstuetzerNichtGeeignetByWahlvorschlagNoFlush<br>
* Beschreibung: <br>
* EJBQL: SELECT COUNT (wp) FROM WahlvorschlagsPerson wp where wp.wahlvorschlag = ?1 and wp.wahlvorschlagsPersonTyp = de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp.UNTERSTUETZER and wp.personStatus = de.ivu.elect.business.person.entity.PersonStatus.NICHT_GEEIGNET<br>
* SQL: <br>
*/
@Override
public java.lang.Long findByCountUnterstuetzerNichtGeeignetByWahlvorschlag( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByCountUnterstuetzerNichtGeeignetByWahlvorschlag" ,  wahlvorschlag  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByCountUnterstuetzerNichtGeeignetByWahlvorschlag(): Miss");
        }

        cache.put(key, super.findByCountUnterstuetzerNichtGeeignetByWahlvorschlag( wahlvorschlag  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByCountUnterstuetzerNichtGeeignetByWahlvorschlag(): Hit");
      }

      return (java.lang.Long) cache.lookup(key);
    }

    return super.findByCountUnterstuetzerNichtGeeignetByWahlvorschlag( wahlvorschlag  );
}
/**
* Name: TypAndWahlAndOrdnungsmerkmalNoFlush<br>
* Beschreibung: <br>
* EJBQL: SELECT obj FROM WahlvorschlagsPerson obj WHERE obj.wahlvorschlagsPersonTyp = ?1 AND obj.wahl = ?2 AND obj.externesOrdnungsmerkmal = ?3<br>
* SQL: <br>
*/
@Override
public java.util.List<WahlvorschlagsPerson> findByTypAndWahlAndOrdnungsmerkmal( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp typ,  @javax.annotation.Nonnull de.ivu.elect.business.wahl.entity.Wahl wahl,  @javax.annotation.Nonnull java.lang.String externesOrdnungsmerkmal) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByTypAndWahlAndOrdnungsmerkmal" ,  typ ,  wahl ,  externesOrdnungsmerkmal  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByTypAndWahlAndOrdnungsmerkmal(): Miss");
        }

        cache.put(key, super.findByTypAndWahlAndOrdnungsmerkmal( typ ,  wahl ,  externesOrdnungsmerkmal  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByTypAndWahlAndOrdnungsmerkmal(): Hit");
      }

      return new java.util.ArrayList<>((java.util.List<WahlvorschlagsPerson>) cache.lookup(key));
    }

    return super.findByTypAndWahlAndOrdnungsmerkmal( typ ,  wahl ,  externesOrdnungsmerkmal  );
}
/**
* Name: WahlOhneUnterstuetzerNoFlush<br>
* Beschreibung: <br>
* EJBQL: select wp from WahlvorschlagsPerson wp where wp.wahl = ?1 and wp.wahlvorschlagsPersonTyp != de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp.UNTERSTUETZER<br>
* SQL: <br>
*/
@Override
public java.util.List<WahlvorschlagsPerson> findByWahlOhneUnterstuetzer( @javax.annotation.Nonnull de.ivu.elect.business.wahl.entity.Wahl wahl) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByWahlOhneUnterstuetzer" ,  wahl  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByWahlOhneUnterstuetzer(): Miss");
        }

        cache.put(key, super.findByWahlOhneUnterstuetzer( wahl  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByWahlOhneUnterstuetzer(): Hit");
      }

      return new java.util.ArrayList<>((java.util.List<WahlvorschlagsPerson>) cache.lookup(key));
    }

    return super.findByWahlOhneUnterstuetzer( wahl  );
}
/**
* Name: WahlvorschlagAndStatusOhneUnterstuetzerNoFlush<br>
* Beschreibung: <br>
* EJBQL: select wp from WahlvorschlagsPerson wp where wp.wahlvorschlag = ?1 and wp.wahlvorschlagsPersonTyp != de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp.UNTERSTUETZER and wp.personStatus = ?2<br>
* SQL: <br>
*/
@Override
public java.util.List<WahlvorschlagsPerson> findByWahlvorschlagAndStatusOhneUnterstuetzer( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag,  @javax.annotation.Nonnull de.ivu.elect.business.person.entity.PersonStatus personStatus) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByWahlvorschlagAndStatusOhneUnterstuetzer" ,  wahlvorschlag ,  personStatus  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlagAndStatusOhneUnterstuetzer(): Miss");
        }

        cache.put(key, super.findByWahlvorschlagAndStatusOhneUnterstuetzer( wahlvorschlag ,  personStatus  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlagAndStatusOhneUnterstuetzer(): Hit");
      }

      return new java.util.ArrayList<>((java.util.List<WahlvorschlagsPerson>) cache.lookup(key));
    }

    return super.findByWahlvorschlagAndStatusOhneUnterstuetzer( wahlvorschlag ,  personStatus  );
}
/**
* Name: WahlvorschlagNoFlush<br>
* Beschreibung: <br>
* EJBQL: select wp from WahlvorschlagsPerson wp where wp.wahlvorschlag = ?1<br>
* SQL: <br>
*/
@Override
public java.util.List<WahlvorschlagsPerson> findByWahlvorschlag( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByWahlvorschlag" ,  wahlvorschlag  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlag(): Miss");
        }

        cache.put(key, super.findByWahlvorschlag( wahlvorschlag  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlag(): Hit");
      }

      return new java.util.ArrayList<>((java.util.List<WahlvorschlagsPerson>) cache.lookup(key));
    }

    return super.findByWahlvorschlag( wahlvorschlag  );
}
/**
* Name: WahlvorschlagOhneUnterstuetzerNoFlush<br>
* Beschreibung: <br>
* EJBQL: select wp from WahlvorschlagsPerson wp where wp.wahlvorschlag = ?1 and wp.wahlvorschlagsPersonTyp != de.ivu.elect.business.wahlvorschlagsperson.entity.WahlvorschlagsPersonTyp.UNTERSTUETZER<br>
* SQL: <br>
*/
@Override
public java.util.List<WahlvorschlagsPerson> findByWahlvorschlagOhneUnterstuetzer( @javax.annotation.Nonnull de.ivu.elect.business.wahlvorschlag.entity.Wahlvorschlag wahlvorschlag) {

    if (de.ivu.elect.business.system.control.CacheQueries.CACHE_QUERIES) {
      de.ivu.elect.presentation.system.FinderKey key = new de.ivu.elect.presentation.system.FinderKey("WahlvorschlagsPerson.findByWahlvorschlagOhneUnterstuetzer" ,  wahlvorschlag  );

      if (!cache.contains(key)) {
        if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
          System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlagOhneUnterstuetzer(): Miss");
        }

        cache.put(key, super.findByWahlvorschlagOhneUnterstuetzer( wahlvorschlag  ));
      } else if (de.ivu.elect.business.system.control.LogQueries.LOG_QUERIES) {
        System.out.println("Query: " + getClass().getName() + ".findByWahlvorschlagOhneUnterstuetzer(): Hit");
      }

      return new java.util.ArrayList<>((java.util.List<WahlvorschlagsPerson>) cache.lookup(key));
    }

    return super.findByWahlvorschlagOhneUnterstuetzer( wahlvorschlag  );
}

  @Override
  public void clear() {
    cache.clear();

    super.clear();
  }
}
