package com.l7tech.server.policy;

import com.l7tech.objectmodel.EntityHeader;
import com.l7tech.objectmodel.EntityManager;
import com.l7tech.objectmodel.FindException;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.ObjectModelException;
import com.l7tech.objectmodel.UpdateException;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyVersion;
import java.util.List;

public interface PolicyVersionManager extends EntityManager<PolicyVersion, EntityHeader> {
   PolicyVersion findByPrimaryKey(Goid var1, Goid var2) throws FindException;

   List<PolicyVersion> findAllForPolicy(Goid var1) throws FindException;

   void deactivateVersions(Goid var1, Goid var2) throws UpdateException;

   PolicyVersion findActiveVersionForPolicy(Goid var1) throws FindException;

   PolicyVersion findPolicyVersionForPolicy(Goid var1, long var2) throws FindException;

   PolicyVersion checkpointPolicy(Policy var1, boolean var2, boolean var3) throws ObjectModelException;

   PolicyVersion checkpointPolicy(Policy var1, boolean var2, String var3, boolean var4) throws ObjectModelException;

   PolicyVersion findLatestRevisionForPolicy(Goid var1);
}
