package com.l7tech.server.policy;

import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.folder.Folder;
import com.l7tech.policy.Policy;
import com.l7tech.util.Functions.Nullary;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

final class am implements ServerPolicyMetadata {
   private final Policy a;
   private final PolicyUniqueIdentifier b;
   private final Set<Goid> c;
   private final Nullary<Collection<Folder>> d;

   private am(Policy var1, PolicyUniqueIdentifier var2, Set<Goid> var3, Nullary<Collection<Folder>> var4) {
      this.a = var1;
      this.b = var2;
      this.c = var3;
      this.d = var4;
   }

   @Override
   public String getPolicyUniqueIdentifier() {
      return this.b.getPolicyUniqueIdentifer();
   }

   @Override
   public Policy getPolicy() {
      return this.a;
   }

   @Override
   public Set<Goid> getUsedPolicyIds(boolean var1) {
      if (!var1) {
         return this.c;
      }

      HashSet var2 = new HashSet<>(this.c);
      var2.add(this.getPolicy().getGoid());
      return Collections.unmodifiableSet(var2);
   }

   @Override
   public Map<Goid, Integer> getDependentVersions(boolean var1) {
      return this.b.getUsedPoliciesAndVersions(var1);
   }

   @Override
   public Nullary<Collection<Folder>> getFolderPath() {
      return this.d;
   }
}
