cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl Class Reference

Inheritance diagram for cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl:
Inheritance graph
[legend]
Collaboration diagram for cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ACSAlarmDAOImpl (Logger log)
List< FaultFamily > loadAlarms () throws Exception
Alarm findAlarm (String alarmId)
Alarm getAlarm (String alarmId)
String[] findAlarmIdsByPriority (Integer priority)
String findLaserSurveillanceAlarmId ()
void deleteAlarm (Alarm alarm)
void saveMemberAlarms (String member)
void saveAlarm (Alarm alarm)
void updateAlarm (Alarm alarm)
void updateStatus (Status status)
Collection search (String select_sql)
Collection archiveSearch (String select_sql)
Building findBuilding (String building)
void setConfAccessor (ConfigurationAccessor conf)
void setSurveillanceAlarmId (String surveillanceAlarmId)
void setResponsiblePersonDAO (ResponsiblePersonDAO responsiblePersonDAO)
String[] getAllAlarmIDs ()
void addFaultFamily (FaultFamily ff)
void updateFaultFamily (FaultFamily ff)
void removeFaultFamily (FaultFamily ff)
alma.alarmsystem.alarmmessage.generated.ReductionDefinitions getReductionRules ()
void flushReductionRules (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds)
void addReductionRule (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.ReductionLinkType rl)
void updateReductionRule (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.ReductionLinkType rl)
void deleteReductionRule (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.ReductionLinkType rl)
void addThreshold (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.Threshold th)
void updateThreshold (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.Threshold th)
void deleteThreshold (alma.alarmsystem.alarmmessage.generated.ReductionDefinitions rds, alma.alarmsystem.alarmmessage.generated.Threshold th)
ConcurrentHashMap< String, SourcegetSources ()

Package Functions

Building loadBuilding (String buildingID)

Static Package Functions

static AlarmRefMatcher toMatcher (AlarmDefinition def)
static String memberFromAlarmID (String alarmId)

Package Attributes

Logger logger
ConfigurationAccessor conf
String surveillanceAlarmId
ResponsiblePersonDAO responsiblePersonDAO

Static Package Attributes

static final HardcodedBuilding theBuilding = HardcodedBuilding.instance
static final HardcodedLocation theLocation = HardcodedLocation.instance

Private Member Functions

void generateAlarmsMap (Vector< FaultFamily > families)
void loadReductionRules ()
void removeAlarmsMap (Vector< FaultFamily > families)

Private Attributes

HashMap< String, AlarmalarmDefs = new HashMap<String,Alarm>()
ConcurrentHashMap< String, SourcesrcDefs = new ConcurrentHashMap<String, Source>()

Static Private Attributes

static final String ALARM_DEFINITION_PATH = "/Alarms/AlarmDefinitions"
static final String REDUCTION_DEFINITION_PATH = "/Alarms/Administrative/ReductionDefinitions"
static final String XML_DOCUMENT_TYPE = "AlarmDefinitions"
static final String DEFAULT_FM = "*"

Detailed Description

Read alarms from the CDB.

CDB contains one file per each possible FF and one entry per each FC and FM. It is possible to specify a default member to be used when the administrator did not specify the member.

The alarms are stored in an HashMap having the triplet as key. The default member has a triplet with a "*" replacing its name.

The sources are defined together with an alarm definition so they are read here and requested by the ACSSourceDAOImpl at startup (instead of being read again from CDB).

The initialization of the alarms is not completely done by loadAlarms because not all the info are available at this time. In fact the categories are assigned to alarms by ACSCategoryDAOImpl

See also:
ACSSourceDAOImpl
ACSCategoryDAOImpl
Author:
acaproni

Constructor & Destructor Documentation

cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::ACSAlarmDAOImpl ( Logger  log  )  [inline]

Constructor

Parameters:
log The log (not null)
 

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References logger.


Member Function Documentation

void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::addFaultFamily ( FaultFamily  ff  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::addReductionRule ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.ReductionLinkType  rl 
) [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::addThreshold ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.Threshold  th 
) [inline]
Collection cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::archiveSearch ( String  select_sql  )  [inline]
Parameters:
select_sql 
Returns:

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::deleteAlarm ( Alarm  alarm  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::deleteReductionRule ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.ReductionLinkType  rl 
) [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::deleteThreshold ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.Threshold  th 
) [inline]
Alarm cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::findAlarm ( String  alarmId  )  [inline]

Returns the alarm corresponding to the given id.

Parameters:
identifier the id of the alarm to find
Returns:
the alarm

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References getAlarm().

String [] cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::findAlarmIdsByPriority ( Integer  priority  )  [inline]
Building cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::findBuilding ( String  building  )  [inline]
String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::findLaserSurveillanceAlarmId (  )  [inline]

Returns all alarms.

Returns:
all alarms

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References getAlarm(), and surveillanceAlarmId.

void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::flushReductionRules ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::generateAlarmsMap ( Vector< FaultFamily >  families  )  [inline, private]

Generate the alarms from the definition of the fault families. The alarms will be added into the HashMap with their triplet as key. The default item has FM="*".

The sources read from the families are also added to the HashMap of the sources

Parameters:
families The FF read from the CDB

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References alarmDefs, DEFAULT_FM, cern::laser::business::data::AlarmImpl::getAlarmId(), cern::laser::business::data::Source::getName(), cern::laser::business::data::Source::getSourceId(), cern::laser::business::data::AlarmImpl::getTriplet(), logger, cern::laser::business::data::AlarmImpl::setAction(), cern::laser::business::data::AlarmImpl::setCategories(), cern::laser::business::data::AlarmImpl::setCause(), cern::laser::business::data::AlarmImpl::setConsequence(), cern::laser::business::data::AlarmImpl::setHelpURL(), cern::laser::business::data::AlarmImpl::setIdentifier(), cern::laser::business::data::AlarmImpl::setInstant(), cern::laser::business::data::AlarmImpl::setLocation(), cern::laser::business::data::AlarmImpl::setMultiplicityChildrenIds(), cern::laser::business::data::AlarmImpl::setMultiplicityParentIds(), cern::laser::business::data::AlarmImpl::setNodeChildrenIds(), cern::laser::business::data::AlarmImpl::setNodeParentIds(), cern::laser::business::data::AlarmImpl::setPiquetEmail(), cern::laser::business::data::AlarmImpl::setPiquetGSM(), cern::laser::business::data::AlarmImpl::setPriority(), cern::laser::business::data::AlarmImpl::setProblemDescription(), cern::laser::business::data::AlarmImpl::setResponsiblePerson(), cern::laser::business::data::AlarmImpl::setSource(), cern::laser::business::data::AlarmImpl::setTriplet(), srcDefs, and cern::laser::business::data::Triplet::toIdentifier().

Referenced by addFaultFamily(), loadAlarms(), and updateFaultFamily().

Alarm cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::getAlarm ( String  alarmId  )  [inline]

Get an alarm from the cache.

Get an alarm from the cache. If the alarm with the given triplet is not in the cache then it looks for a default alarm before returning null.

If a default alarm is found, then a new alarm is created by cloning the default alarm. The triplet of this new alarm is set to be equal to the passed alarm ID.

Parameters:
alarmId The ID of the alarm
Returns:
An alarm with the given ID if it exists in the CDB If an alarm with the give ID does not exist but a matching default alarm is defined then it return a clone of the default alarm null If the alarm is not defined in the CDB and a default alarm does not exist

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References alarmDefs, cern::laser::business::data::AlarmImpl::clone(), conf, DEFAULT_FM, logger, and cern::laser::business::data::AlarmImpl::setTriplet().

Referenced by addReductionRule(), addThreshold(), deleteReductionRule(), deleteThreshold(), findAlarm(), findLaserSurveillanceAlarmId(), cl::utfsm::acs::acg::dao::ACSAlarmDAOImplTest::testAddFaultFamily(), cl::utfsm::acs::acg::dao::ACSAlarmDAOImplTest::testRemoveFaultFamily(), cl::utfsm::acs::acg::dao::ACSAlarmDAOImplTest::testUpdateFaultFamily(), and updateThreshold().

String [] cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::getAllAlarmIDs (  )  [inline]

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References alarmDefs.

Referenced by removeAlarmsMap().

alma.alarmsystem.alarmmessage.generated.ReductionDefinitions cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::getReductionRules (  )  [inline]
ConcurrentHashMap<String, Source> cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::getSources (  )  [inline]

Getter method

Returns:
The sources

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References srcDefs.

List<FaultFamily> cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::loadAlarms (  )  throws Exception [inline]

Load alarms from CDB.

Read the alarms by the alarm definitions file of the CDB. The initialization of the alarms is not complete at this stage. In fact the categories are assigned to alarms when reading the categories from the CDB by ACSCategoryDAOImpl

Exceptions:
Exception In case of error while parsing XML definition files
See also:
ACSCategoryDAOImpl

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References ALARM_DEFINITION_PATH, alarmDefs, conf, generateAlarmsMap(), com::cosylab::acs::laser::dao::ConfigurationAccessor::getConfiguration(), loadReductionRules(), and XML_DOCUMENT_TYPE.

Building cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::loadBuilding ( String  buildingID  )  [inline, package]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::loadReductionRules (  )  [inline, private]

Load the reduction rules from the CDB.

Read the reduction rules from the CDB and set up the alarms accordingly

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

References cern::laser::business::data::AlarmImpl::addMultiplicityChild(), cern::laser::business::data::AlarmImpl::addNodeChild(), alarmDefs, cl::utfsm::acs::acg::dao::LinkSpec::child, conf, cl::utfsm::acs::acg::dao::AlarmRefMatcher::family, com::cosylab::acs::laser::dao::xml::Threshold::getAlarmDefinition(), com::cosylab::acs::laser::dao::xml::Child::getAlarmDefinition(), com::cosylab::acs::laser::dao::xml::Parent::getAlarmDefinition(), cern::laser::business::data::AlarmImpl::getAlarmId(), com::cosylab::acs::laser::dao::ConfigurationAccessor::getConfiguration(), com::cosylab::acs::laser::dao::xml::AlarmDefinition::getFaultFamily(), com::cosylab::acs::laser::dao::xml::ReductionDefinitions::getLinksToCreate(), com::cosylab::acs::laser::dao::xml::ReductionLinkType::getParent(), com::cosylab::acs::laser::dao::xml::ReductionLinkDefinitionListType::getReductionLink(), com::cosylab::acs::laser::dao::xml::Thresholds::getThreshold(), com::cosylab::acs::laser::dao::xml::Thresholds::getThresholdCount(), com::cosylab::acs::laser::dao::xml::ReductionDefinitions::getThresholds(), cl::utfsm::acs::acg::dao::AlarmRefMatcher::isMatch(), cl::utfsm::acs::acg::dao::LinkSpec::isMultiplicity, logger, cl::utfsm::acs::acg::dao::AlarmRefMatcher::member, cl::utfsm::acs::acg::dao::AlarmRefMatcher::minCode, cl::utfsm::acs::acg::dao::LinkSpec::parent, REDUCTION_DEFINITION_PATH, toMatcher(), and com::cosylab::acs::laser::dao::xml::ReductionDefinitions::unmarshal().

Referenced by loadAlarms().

static String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::memberFromAlarmID ( String  alarmId  )  [inline, static, package]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::removeAlarmsMap ( Vector< FaultFamily >  families  )  [inline, private]

References alarmDefs, and getAllAlarmIDs().

Referenced by removeFaultFamily(), and updateFaultFamily().

void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::removeFaultFamily ( FaultFamily  ff  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::saveAlarm ( Alarm  alarm  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::saveMemberAlarms ( String  member  )  [inline]
Collection cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::search ( String  select_sql  )  [inline]
Parameters:
select_sql 
Returns:

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::setConfAccessor ( ConfigurationAccessor  conf  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::setResponsiblePersonDAO ( ResponsiblePersonDAO  responsiblePersonDAO  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::setSurveillanceAlarmId ( String  surveillanceAlarmId  )  [inline]
static AlarmRefMatcher cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::toMatcher ( AlarmDefinition  def  )  [inline, static, package]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::updateAlarm ( Alarm  alarm  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::updateFaultFamily ( FaultFamily  ff  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::updateReductionRule ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.ReductionLinkType  rl 
) [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::updateStatus ( Status  status  )  [inline]
void cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::updateThreshold ( alma.alarmsystem.alarmmessage.generated.ReductionDefinitions  rds,
alma.alarmsystem.alarmmessage.generated.Threshold  th 
) [inline]

Member Data Documentation

final String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::ALARM_DEFINITION_PATH = "/Alarms/AlarmDefinitions" [static, private]
HashMap<String,Alarm> cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::alarmDefs = new HashMap<String,Alarm>() [private]

The alarms read out the CDB The CDB contains fault families. The alarms are generated from the fault families.

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

Referenced by deleteAlarm(), findAlarmIdsByPriority(), generateAlarmsMap(), getAlarm(), getAllAlarmIDs(), loadAlarms(), loadReductionRules(), removeAlarmsMap(), saveAlarm(), and updateAlarm().

final String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::DEFAULT_FM = "*" [static, private]
final String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::REDUCTION_DEFINITION_PATH = "/Alarms/Administrative/ReductionDefinitions" [static, private]
ConcurrentHashMap<String, Source> cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::srcDefs = new ConcurrentHashMap<String, Source>() [private]

Source are defined together with alarms This HashMap contains all the sources read from CDB

Reimplemented from com::cosylab::acs::laser::dao::ACSAlarmDAOImpl.

Referenced by generateAlarmsMap(), and getSources().

final String cl::utfsm::acs::acg::dao::ACSAlarmDAOImpl::XML_DOCUMENT_TYPE = "AlarmDefinitions" [static, private]

The documentation for this class was generated from the following file:

Generated by  doxygen 1.6.2