package com.l7tech.identity;

import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.IdentityHeader;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.UpdateException;
import java.util.Set;

public interface UserManager<UT extends User> {
   UT findByPrimaryKey(String var1) throws FindException;

   UT findByLogin(String var1) throws FindException;

   void delete(UT var1) throws DeleteException;

   void delete(String var1) throws DeleteException, FindException;

   void deleteAll(Goid var1) throws DeleteException, FindException;

   void update(UT var1) throws UpdateException, FindException;

   String save(UT var1, Set<IdentityHeader> var2) throws SaveException;

   String save(Goid var1, UT var2, Set<IdentityHeader> var3) throws SaveException;

   UT reify(UserBean var1);

   void update(UT var1, Set<IdentityHeader> var2) throws UpdateException, FindException;

   EntityHeaderSet<IdentityHeader> search(String var1) throws FindException;

   IdentityHeader userToHeader(UT var1);

   UT headerToUser(IdentityHeader var1);

   Class<? extends User> getImpClass();

   EntityHeaderSet<IdentityHeader> findAllHeaders() throws FindException;
}
