/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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 org.apache.ambari.server.controller.ivory; import java.util.Map; /** * Ivory feed. */ public class Feed { private final String name; private final String description; private final String status; private final String schedule; private final String sourceClusterName; private final String sourceClusterStart; private final String sourceClusterEnd; private final String sourceClusterLimit; private final String sourceClusterAction; private final String targetClusterName; private final String targetClusterStart; private final String targetClusterEnd; private final String targetClusterLimit; private final String targetClusterAction; private final Map<String, String> properties; /** * Construct a feed. * * @param name the feed name * @param description the description * @param status the status * @param schedule the schedule * @param sourceClusterName the source cluster name * @param sourceClusterStart the source cluster validity start time * @param sourceClusterEnd the source cluster validity end time * @param sourceClusterLimit the source cluster retention limit * @param sourceClusterAction the source cluster retention action * @param targetClusterName the target cluster name * @param targetClusterStart the target cluster validity start time * @param targetClusterEnd the target cluster validity end time * @param targetClusterLimit the target cluster retention limit * @param targetClusterAction the target cluster retention action * @param properties the properties */ public Feed(String name, String description, String status, String schedule, String sourceClusterName, String sourceClusterStart, String sourceClusterEnd, String sourceClusterLimit, String sourceClusterAction, String targetClusterName, String targetClusterStart, String targetClusterEnd, String targetClusterLimit, String targetClusterAction, Map<String, String> properties) { this.name = name; this.description = description; this.status = status; this.schedule = schedule; this.sourceClusterName = sourceClusterName; this.sourceClusterStart = sourceClusterStart; this.sourceClusterEnd = sourceClusterEnd; this.sourceClusterLimit = sourceClusterLimit; this.sourceClusterAction = sourceClusterAction; this.targetClusterName = targetClusterName; this.targetClusterStart = targetClusterStart; this.targetClusterEnd = targetClusterEnd; this.targetClusterLimit = targetClusterLimit; this.targetClusterAction = targetClusterAction; this.properties = properties; } /** * Get the name. * * @return the name */ public String getName() { return name; } /** * Get the description. * * @return the description */ public String getDescription() { return description; } /** * Get the status. * * @return the status */ public String getStatus() { return status; } /** * Get the schedule. * * @return the schedule */ public String getSchedule() { return schedule; } /** * Get the source cluster name. * * @return the source cluster name */ public String getSourceClusterName() { return sourceClusterName; } /** * Get the source cluster validity start time. * * @return the source cluster validity start time */ public String getSourceClusterStart() { return sourceClusterStart; } /** * Get the source cluster validity end time. * * @return the source cluster validity end time */ public String getSourceClusterEnd() { return sourceClusterEnd; } /** * Get the source cluster retention limit. * * @return the source cluster retention limit */ public String getSourceClusterLimit() { return sourceClusterLimit; } /** * Get the source cluster retention action. * * @return the source cluster retention action */ public String getSourceClusterAction() { return sourceClusterAction; } /** * Get the target cluster name. * * @return the target cluster name */ public String getTargetClusterName() { return targetClusterName; } /** * Get the target cluster validity start time. * * @return the target cluster validity start time */ public String getTargetClusterStart() { return targetClusterStart; } /** * Get the target cluster validity end time. * * @return the target cluster validity end time */ public String getTargetClusterEnd() { return targetClusterEnd; } /** * Get the target cluster retention limit. * * @return the target cluster retention limit */ public String getTargetClusterLimit() { return targetClusterLimit; } /** * Get the target cluster retention action. * * @return the target cluster retention action */ public String getTargetClusterAction() { return targetClusterAction; } /** * Get the properties. * * @return the properties */ public Map<String, String> getProperties() { return properties; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Feed feed = (Feed) o; return !(description != null ? !description.equals(feed.description) : feed.description != null) && !(name != null ? !name.equals(feed.name) : feed.name != null) && !(schedule != null ? !schedule.equals(feed.schedule) : feed.schedule != null) && !(sourceClusterName != null ? !sourceClusterName.equals(feed.sourceClusterName) : feed.sourceClusterName != null) && !(status != null ? !status.equals(feed.status) : feed.status != null) && !(targetClusterName != null ? !targetClusterName.equals(feed.targetClusterName) : feed.targetClusterName != null); } @Override public int hashCode() { int result = name != null ? name.hashCode() : 0; result = 31 * result + (description != null ? description.hashCode() : 0); result = 31 * result + (status != null ? status.hashCode() : 0); result = 31 * result + (schedule != null ? schedule.hashCode() : 0); result = 31 * result + (sourceClusterName != null ? sourceClusterName.hashCode() : 0); result = 31 * result + (targetClusterName != null ? targetClusterName.hashCode() : 0); return result; } }