org.phoebus.applications.alarm.model.AlarmTreeLeaf Maven / Gradle / Ivy
/*******************************************************************************
* Copyright (c) 2018 Oak Ridge National Laboratory.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*******************************************************************************/
package org.phoebus.applications.alarm.model;
import java.time.LocalDateTime;
/** Additional methods of an alarm tree leaf
*
* An alarm tree lead is always an {@link AlarmTreeItem},
* but with these additional methods.
*
* @author Kay Kasemir
*/
public interface AlarmTreeLeaf
{
/** @return Return description */
public String getDescription();
/** @param description Description
* @return true
if this is a change
*/
public boolean setDescription(final String description);
/** @return true
if alarms from PV are enabled */
public boolean isEnabled();
/** @param enabled_state Enable the PV?
* @return true
if this is a change
*/
public boolean setEnabled(final EnabledState enabled_state);
/** @param enable Enable the PV?
* @return true
if this is a change
*/
public boolean setEnabled(final boolean enable);
/** @param enabled_date Set expiration for enabling?
* @return true
if this is a change
*/
public boolean setEnabledDate(final LocalDateTime enabled_date);
/** @return Enabled date if alarm is bypassed with set expiration */
public LocalDateTime getEnabledDate();
/** @return object representing enabled state */
public EnabledState getEnabled();
/** @return true
if alarms from PV are latched */
public boolean isLatching();
/** @param latch Latch alarms from the PV?
* @return true
if this is a change
*/
public boolean setLatching(final boolean latch);
/** @return true
if alarms from PV are annunciated */
public boolean isAnnunciating();
/** @param annunciate Annunciate alarms from the PV?
* @return true
if this is a change
*/
public boolean setAnnunciating(final boolean annunciate);
/** @return Alarm delay in seconds. */
public int getDelay();
/** @param seconds Alarm delay
* @return true
if this is a change
*/
public boolean setDelay(final int seconds);
/** @return Alarm count. Alarm needs to exceed this count within the delay */
public int getCount();
/** @param times Alarm when PV not OK more often than this count within delay
* @return true
if this is a change
*/
public boolean setCount(final int times);
/** @return Enabling filter expression. */
public String getFilter();
/** @param expression Expression that enables the alarm
* @return true
if this is a change
*/
public boolean setFilter(final String expression);
}