package com.l7tech.server.policy;

import com.l7tech.objectmodel.DeleteException;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.GuidBasedEntityManager;
import com.l7tech.objectmodel.PropertySearchableEntityManager;
import com.l7tech.objectmodel.RoleAwareEntityManager;
import com.l7tech.objectmodel.SaveException;
import com.l7tech.objectmodel.folder.FolderedEntityManager;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyHeader;
import com.l7tech.policy.PolicyType;
import java.util.Collection;
import java.util.Set;

public interface PolicyManager
   extends FolderedEntityManager<Policy, PolicyHeader>,
   GuidBasedEntityManager<Policy>,
   PropertySearchableEntityManager<PolicyHeader>,
   RoleAwareEntityManager<Policy> {
   Collection<PolicyHeader> findHeadersByType(PolicyType var1) throws FindException;

   void addManagePolicyRole(Policy var1) throws SaveException;

   Policy findByGuid(String var1) throws FindException;

   Collection<PolicyHeader> findHeadersWithTypes(Set<PolicyType> var1) throws FindException;

   Collection<PolicyHeader> findHeadersWithTypes(Set<PolicyType> var1, boolean var2) throws FindException;

   void deleteWithoutValidation(Policy var1) throws DeleteException;
}
