/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.objectmodel.Goid
 *  com.l7tech.objectmodel.folder.Folder
 *  com.l7tech.policy.CircularPolicyException
 *  com.l7tech.policy.Policy
 *  com.l7tech.policy.PolicyDeletionForbiddenException
 *  com.l7tech.policy.PolicyType
 */
package com.l7tech.server.policy;

import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.policy.CircularPolicyException;
import com.l7tech.policy.Policy;
import com.l7tech.policy.PolicyDeletionForbiddenException;
import com.l7tech.policy.PolicyType;
import com.l7tech.server.policy.PolicyMetadata;
import com.l7tech.server.policy.ServerPolicyHandle;
import java.util.List;
import java.util.Map;
import java.util.Set;

public interface PolicyCache {
    public ServerPolicyHandle getServerPolicy(Policy var1);

    public ServerPolicyHandle getServerPolicy(Goid var1);

    public ServerPolicyHandle getServerPolicy(String var1);

    public void validate(Policy var1) throws CircularPolicyException;

    public void validateRemove(Goid var1) throws PolicyDeletionForbiddenException;

    public void update(Policy var1);

    public boolean remove(Goid var1);

    public Set<String> getPoliciesByTypeAndTag(PolicyType var1, String var2);

    public String registerGlobalPolicy(String var1, PolicyType var2, String var3, String var4);

    public void unregisterGlobalPolicy(String var1);

    public Set<Policy> findUsages(Goid var1);

    public Map<Goid, Integer> getDependentVersions(Goid var1);

    public String getUniquePolicyVersionIdentifer(Goid var1);

    public PolicyMetadata getPolicyMetadata(Policy var1);

    public PolicyMetadata getPolicyMetadata(Goid var1);

    public PolicyMetadata getPolicyMetadataByGuid(String var1);

    public boolean isStarted();

    public List<Folder> getFolderPath(Goid var1);
}

