/*
* $Id: Alarm.java,v 1.2 2006/09/25 08:52:36 acaproni Exp $
*
* $Date: 2006/09/25 08:52:36 $
* $Revision: 1.2 $
* $Author: acaproni $
*
* Copyright CERN, All Rights Reserved.
*/
package cern.laser.client.data;
import java.net.URL;
import java.util.Collection;
/**
* The alarm class. It describes a fault state in terms of its static and dynamic information.
*/
public interface Alarm {
/**
* Accessor method.
*
* @return the alarm unique identifier
*/
public String getAlarmId();
/**
* Accessor method.
*
* @return the alarm unique triplet identifier
*/
public Triplet getTriplet();
/**
* Accessor method.
*
* @return the alarm system name
*/
public String getSystemName();
/**
* Accessor method.
*
* @return the alarm system identifier
*/
public String getIdentifier();
/**
* Accessor method.
*
* @return the problem description
*/
public String getProblemDescription();
/**
* Accessor method.
*
* @return the alarm priority (1..4)
*/
public Integer getPriority();
/**
* Accessor method.
*
* @return the alarm cause
*/
public String getCause();
/**
* Accessor method.
*
* @return the alarm action to be taken
*/
public String getAction();
/**
* Accessor method.
*
* @return the alarm consequence
*/
public String getConsequence();
/**
* Accessor method.
*
* @return the alarm source
*/
public Source getSource();
/**
* Accessor method.
*
* @return the alarm URL, null if not available
*/
public URL getHelpURL();
/**
* Accessor method.
*
* @return the alarm piquet GSM, null if not available
*/
public String getPiquetGSM();
/**
* Accessor method.
*
* @return the alarm piquet email, null if not available
*/
public String getPiquetEmail();
/**
* Accessor method.
*
* @return the alarm attached categories
*/
public Collection getCategories();
/**
* Accessor method.
*
* @return the alarm location
*/
public Location getLocation();
/**
* Accessor method.
*
* @return the alarm responsible
*/
public ResponsiblePerson getResponsiblePerson();
/**
* Accessor method.
*
* @return the alarm dynamic information
*/
public Status getStatus();
/**
* Accessor method.
*
* @return true, iff it is an instant alarm
*/
public boolean isInstant();
/**
* Accessor method.
*
* @return true iff it is a multiplicity parent
*/
public boolean isMultiplicityParent();
/**
* Accessor method.
*
* @return true iff it is a node parent
*/
public boolean isNodeParent();
/**
* Accessor method.
*
* @return true iff it is a multiplicity child
*/
public boolean isMultiplicityChild();
/**
* Accessor method.
*
* @return true iff it is a node child
*/
public boolean isNodeChild();
/**
* Cloning method. The cloned object is a deep copy.
*
* @return a deep copy of the object
* @throws CloneNotSupportedException if clone failed
*/
public Object clone() throws CloneNotSupportedException;
}