package com.xfestudio.xfeservermanager.api.policy;
import com.xfestudio.xfeservermanager.api.util.ApiChecks;
import java.util.Set;
public record ItemConstraint(
Set<String> allowedItemIds,
Set<String> deniedItemIds,
Set<String> allowedItemTags,
Set<String> deniedItemTags,
Integer maximumCount,
Set<String> allowedDataKeys,
Set<String> deniedDataKeys
) {
public ItemConstraint {
allowedItemIds = ApiChecks.immutableLowercaseSet(allowedItemIds, "allowedItemIds");
deniedItemIds = ApiChecks.immutableLowercaseSet(deniedItemIds, "deniedItemIds");
allowedItemTags = ApiChecks.immutableLowercaseSet(allowedItemTags, "allowedItemTags");
deniedItemTags = ApiChecks.immutableLowercaseSet(deniedItemTags, "deniedItemTags");
if (maximumCount != null && maximumCount < 1) {
throw new IllegalArgumentException("maximumCount must be positive when present");
}
allowedDataKeys = ApiChecks.immutableLowercaseSet(allowedDataKeys, "allowedDataKeys");
deniedDataKeys = ApiChecks.immutableLowercaseSet(deniedDataKeys, "deniedDataKeys");
}
public static ItemConstraint unrestricted() {
return new ItemConstraint(Set.of(), Set.of(), Set.of(), Set.of(), null, Set.of(), Set.of());
}
}
package com.xfestudio.xfeservermanager.api.policy;
import com.xfestudio.xfeservermanager.api.util.ApiChecks;
import java.util.Set;
public record ItemConstraint(
Set<String> allowedItemIds,
Set<String> deniedItemIds,
Set<String> allowedItemTags,
Set<String> deniedItemTags,
Integer maximumCount,
Set<String> allowedDataKeys,
Set<String> deniedDataKeys
) {
public ItemConstraint {
allowedItemIds = ApiChecks.immutableLowercaseSet(allowedItemIds, "allowedItemIds");
deniedItemIds = ApiChecks.immutableLowercaseSet(deniedItemIds, "deniedItemIds");
allowedItemTags = ApiChecks.immutableLowercaseSet(allowedItemTags, "allowedItemTags");
deniedItemTags = ApiChecks.immutableLowercaseSet(deniedItemTags, "deniedItemTags");
if (maximumCount != null && maximumCount < 1) {
throw new IllegalArgumentException("maximumCount must be positive when present");
}
allowedDataKeys = ApiChecks.immutableLowercaseSet(allowedDataKeys, "allowedDataKeys");
deniedDataKeys = ApiChecks.immutableLowercaseSet(deniedDataKeys, "deniedDataKeys");
}
public static ItemConstraint unrestricted() {
return new ItemConstraint(Set.of(), Set.of(), Set.of(), Set.of(), null, Set.of(), Set.of());
}
}