/**
* 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.state.alert;
import java.util.Map;
import org.apache.ambari.server.orm.entities.AlertTargetEntity;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* The {@link AlertTarget} class represents a dispatch mechanism and audience
* that will receive information about alerts int he system.
*/
public class AlertTarget {
private Long m_id;
private String m_name;
private String m_description;
private String m_notificationType;
private Map<String, String> m_properties;
private boolean m_isGlobal;
private boolean m_isEnabled;
/**
* @return the id
*/
@JsonProperty("id")
public Long getId() {
return m_id;
}
/**
* @param id
* the id to set
*/
public void setId(Long id) {
m_id = id;
}
/**
* @return the name
*/
@JsonProperty("name")
public String getName() {
return m_name;
}
/**
* @param name
* the name to set
*/
public void setName(String name) {
m_name = name;
}
/**
* @return the description
*/
@JsonProperty("description")
public String getDescription() {
return m_description;
}
/**
* @param description
* the description to set
*/
public void setDescription(String description) {
m_description = description;
}
/**
* @return the notificationType
*/
@JsonProperty("notification_type")
public String getNotificationType() {
return m_notificationType;
}
/**
* @param notificationType
* the notificationType to set
*/
public void setNotificationType(String notificationType) {
m_notificationType = notificationType;
}
/**
* @return the properties
*/
@JsonProperty("properties")
public Map<String, String> getProperties() {
return m_properties;
}
/**
* @param properties
* the properties to set
*/
public void setProperties(Map<String, String> properties) {
m_properties = properties;
}
/**
* Gets whether the alert target is global.
*
* @return {@code true} if global.
*/
@JsonProperty("global")
public boolean isGlobal() {
return m_isGlobal;
}
/**
* Sets whether the alert target is global.
*
* @param isGlobal
* {@code true} if the alert target is global.
*/
public void setGlobal(boolean isGlobal) {
m_isGlobal = isGlobal;
}
/**
* Gets whether the alert target is enabled.
*
* @return {@code true} if enabled.
*/
@JsonProperty("enabled")
public boolean isEnabled() {
return m_isEnabled;
}
/**
* Sets whether the alert target is enabled.
*
* @param isEnabled
* {@code true} if the alert target is enabled.
*/
public void setEnabled(boolean isEnabled) {
m_isEnabled = isEnabled;
}
/**
* @param entity
* @return
*/
public static AlertTarget coerce(AlertTargetEntity entity) {
AlertTarget target = new AlertTarget();
target.setId(entity.getTargetId());
target.setDescription(entity.getDescription());
target.setName(entity.getTargetName());
target.setNotificationType(entity.getNotificationType());
target.setGlobal(entity.isGlobal());
target.setEnabled(entity.isEnabled());
return target;
}
}