package com.l7tech.server;

import com.l7tech.objectmodel.Entity;
import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityHeaderSet;
import com.l7tech.objectmodel.EntityType;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.HeaderBasedEntityFinder;
import com.l7tech.objectmodel.SecurityZoneEntityFinder;
import java.io.Serializable;
import org.jetbrains.annotations.NotNull;
import org.springframework.transaction.annotation.Transactional;

public interface EntityFinder extends HeaderBasedEntityFinder, SecurityZoneEntityFinder {
   @Transactional(readOnly = true)
   EntityHeaderSet<EntityHeader> findAll(Class<? extends Entity> var1) throws FindException;

   @Transactional(readOnly = true)
   Entity find(@NotNull EntityHeader var1) throws FindException;

   @Transactional(readOnly = true)
   <ET extends Entity> ET find(Class<ET> var1, Serializable var2) throws FindException;

   @Transactional(readOnly = true)
   EntityHeader findHeader(EntityType var1, Serializable var2) throws FindException;
}
