package com.l7tech.server.identity;

import com.l7tech.identity.PersistentUser;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.server.util.ReadOnlyHibernateCallback;
import jakarta.persistence.criteria.CriteriaBuilder;
import jakarta.persistence.criteria.CriteriaQuery;
import jakarta.persistence.criteria.Predicate;
import jakarta.persistence.criteria.Root;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Session;

class v extends ReadOnlyHibernateCallback<EntityHeaderSet<IdentityHeader>> {
   final String val$searchString;
   final PersistentUserManagerImpl this$0;

   v(PersistentUserManagerImpl var1, String var2) {
      this.this$0 = var1;
      this.val$searchString = var2;
   }

   public EntityHeaderSet<IdentityHeader> doInHibernateReadOnly(Session var1) throws HibernateException, SQLException {
      CriteriaBuilder var2 = var1.getCriteriaBuilder();
      CriteriaQuery var3 = var2.createQuery(this.this$0.getImpClass());
      Root var4 = var3.from(this.this$0.getImpClass());
      String var5 = this.val$searchString.replace('*', '%').replace('?', '_');
      Predicate var6 = var2.like(var2.lower(var4.get(this.this$0.getNameFieldname())), var5.toLowerCase());
      var6 = PersistentUserManagerImpl.access$200(this.this$0, var6, var2, var4);
      var3.select(var4).where(var6);
      List var7 = var1.createQuery(var3).getResultList();
      EntityHeaderSet var8 = new EntityHeaderSet();

      for (PersistentUser var10 : var7) {
         var8.add(this.this$0.newHeader(var10));
      }

      return var8;
   }
}
