/** * Copyright 2016 Yahoo Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.yahoo.pulsar.common.policies.data; import java.util.List; import java.util.Map; import com.google.common.base.Objects; import com.google.common.collect.Lists; import com.google.common.collect.Maps; public class Policies { public final AuthPolicies auth_policies; public List<String> replication_clusters; public BundlesData bundles; public Map<BacklogQuota.BacklogQuotaType, BacklogQuota> backlog_quota_map; public PersistencePolicies persistence; public Map<String, Integer> latency_stats_sample_rate; public int message_ttl_in_seconds; public RetentionPolicies retention_policies; public boolean deleted; public static final String FIRST_BOUNDARY = "0x00000000"; public static final String LAST_BOUNDARY = "0xffffffff"; public Policies() { auth_policies = new AuthPolicies(); replication_clusters = Lists.newArrayList(); bundles = defaultBundle(); backlog_quota_map = Maps.newHashMap(); persistence = null; latency_stats_sample_rate = Maps.newHashMap(); message_ttl_in_seconds = 0; retention_policies = null; deleted = false; } @Override public boolean equals(Object obj) { if (obj instanceof Policies) { Policies other = (Policies) obj; return Objects.equal(auth_policies, other.auth_policies) && Objects.equal(replication_clusters, other.replication_clusters) && Objects.equal(backlog_quota_map, other.backlog_quota_map) && Objects.equal(persistence, other.persistence) && Objects.equal(bundles, other.bundles) && Objects.equal(latency_stats_sample_rate, other.latency_stats_sample_rate) && message_ttl_in_seconds == other.message_ttl_in_seconds && Objects.equal(retention_policies, other.retention_policies); } return false; } public static BundlesData defaultBundle() { BundlesData bundle = new BundlesData(1); List<String> boundaries = Lists.newArrayList(); boundaries.add(FIRST_BOUNDARY); boundaries.add(LAST_BOUNDARY); bundle.setBoundaries(boundaries); return bundle; } @Override public String toString() { return Objects.toStringHelper(this).add("auth_policies", auth_policies) .add("replication_clusters", replication_clusters).add("bundles", bundles) .add("backlog_quota_map", backlog_quota_map).add("persistence", persistence) .add("latency_stats_sample_rate", latency_stats_sample_rate) .add("message_ttl_in_seconds", message_ttl_in_seconds).add("retention_policies", retention_policies) .add("deleted", deleted).toString(); } }