Search in sources :

Example 6 with FaultCode

use of alma.acs.alarmsystem.generated.FaultCode in project ACS by ACS-Community.

the class AlarmManager method updateFaultCode.

/**
	 * Modifies a Fault Code of a given Fault Family.
	 * @param ff The Fault Family to which belongs the Fault Code to be changed
	 * @param fc The Fault Code to be changed
	 * @param fci The Fault Code with the new values
	 * @throws NullPointerException If any (or both) of the given Fault Codes
	 * or the Fault Family (or its name) or both are null
	 * @throws IllegalOperationException If the Fault Family doesn't exists
	 */
public void updateFaultCode(FaultFamily ff, FaultCode fc, FaultCode fci) throws NullPointerException, IllegalOperationException {
    if (ff == null || ff.getName() == null)
        throw new NullPointerException("The Fault Family (or its name) is null");
    if (fc == null)
        throw new NullPointerException("The Fault Code to be changed is null");
    if (fci == null)
        throw new NullPointerException("The Fault Code with the new values is null");
    for (Iterator<FaultFamily> iterator = _ffList.iterator(); iterator.hasNext(); ) {
        FaultFamily fft = (FaultFamily) iterator.next();
        if (fft.getName().compareTo(ff.getName()) == 0) {
            for (Iterator<FaultCode> iterator2 = Arrays.asList(fft.getFaultCode()).iterator(); iterator2.hasNext(); ) {
                FaultCode fct = (FaultCode) iterator2.next();
                if (fct.getValue() == fci.getValue()) {
                    if (fc.getValue() == fci.getValue())
                        continue;
                    throw new IllegalOperationException("The Fault Code " + fci.getValue() + " already exists");
                }
            }
            for (Iterator<FaultCode> iterator2 = Arrays.asList(fft.getFaultCode()).iterator(); iterator2.hasNext(); ) {
                FaultCode fct = (FaultCode) iterator2.next();
                if (fct.getValue() == fc.getValue()) {
                    int value = fc.getValue();
                    fct.setValue(fci.getValue());
                    fct.setPriority(fci.getPriority());
                    fct.setCause(fci.getCause());
                    fct.setAction(fci.getAction());
                    fct.setConsequence(fci.getConsequence());
                    fct.setProblemDescription(fci.getProblemDescription());
                    ObjectState os = _objState.get(fft.getName());
                    if (os == null)
                        throw new IllegalOperationException("There is no ObjectState associated with the given Fault Family");
                    os.update();
                    if (value != fci.getValue()) {
                        Vector<FaultFamily> ffs = new Vector<FaultFamily>();
                        ffs.add(ff);
                        ((ACSAlarmDAOImpl) _alarmDAO).removeAlarmsMap(ffs);
                        ((ACSAlarmDAOImpl) _alarmDAO).generateAlarmsMap(ffs);
                    }
                    return;
                }
            }
            throw new IllegalOperationException("The Fault Value " + fc.getValue() + " doesn't exists");
        }
    }
    throw new IllegalOperationException("The Fault Family " + ff.getName() + " doesn't exists");
}
Also used : FaultCode(alma.acs.alarmsystem.generated.FaultCode) FaultFamily(alma.acs.alarmsystem.generated.FaultFamily) Vector(java.util.Vector) ACSAlarmDAOImpl(cl.utfsm.acs.acg.dao.ACSAlarmDAOImpl)

Example 7 with FaultCode

use of alma.acs.alarmsystem.generated.FaultCode in project ACS by ACS-Community.

the class AlarmManager method deleteFaultCode.

/**
	 * Deletes a Fault Code of a given Fault Family. The Fault Code to be 
	 * deleted is checked against the existing Reduction Rules in order to 
	 * preserve the consistency of the application (i.e., a Fault Code cannot 
	 * be deleted if it is currently present in a Reduction Rule).
	 * @param ff The Fault Family of the Fault Code to be deleted
	 * @param fc The Fault Code to be deleted
	 * @return True if it deletes the given Fault Code, false otherwise
	 * @throws NullPointerException If the given Fault Family or Fault Code 
	 * is null
	 * @throws IllegalOperationException If the Fault Code is part of an 
	 * existing Reduction Rule
	 */
public boolean deleteFaultCode(FaultFamily ff, FaultCode fc) throws NullPointerException, IllegalOperationException {
    if (ff == null || ff.getName() == null)
        throw new NullPointerException("The Fault Family (or its name) owner of the Fault Code to be deleted is null");
    if (fc == null)
        throw new NullPointerException("The Fault Code to be deleted is null");
    List<ReductionRule> rrL = _reductionManager.getNodeReductionRules();
    for (ReductionRule rr : rrL) {
        String[] tr = rr.getParent().getAlarmId().split(":");
        if (tr[0].compareTo(ff.getName()) == 0 && Integer.parseInt(tr[2]) == fc.getValue())
            throw new IllegalOperationException("The Fault Code is currently associated to a Reduction Rule");
    }
    for (Iterator<FaultFamily> iterator = _ffList.iterator(); iterator.hasNext(); ) {
        FaultFamily fft = (FaultFamily) iterator.next();
        if (fft.getName().compareTo(ff.getName()) == 0) {
            for (Iterator<FaultCode> iterator2 = Arrays.asList(fft.getFaultCode()).iterator(); iterator2.hasNext(); ) {
                FaultCode fct = (FaultCode) iterator2.next();
                if (fct.getValue() == fc.getValue()) {
                    fft.removeFaultCode(fc);
                    ObjectState os = _objState.get(fft.getName());
                    if (os == null)
                        throw new IllegalOperationException("There is no ObjectState associated with the given Fault Family");
                    os.update();
                    Vector<FaultFamily> ffs = new Vector<FaultFamily>();
                    ffs.add(ff);
                    ((ACSAlarmDAOImpl) _alarmDAO).removeAlarmsMap(ffs);
                    ((ACSAlarmDAOImpl) _alarmDAO).generateAlarmsMap(ffs);
                    return true;
                }
            }
        }
    }
    return false;
}
Also used : FaultCode(alma.acs.alarmsystem.generated.FaultCode) FaultFamily(alma.acs.alarmsystem.generated.FaultFamily) Vector(java.util.Vector) ACSAlarmDAOImpl(cl.utfsm.acs.acg.dao.ACSAlarmDAOImpl)

Example 8 with FaultCode

use of alma.acs.alarmsystem.generated.FaultCode in project ACS by ACS-Community.

the class ACSAlarmDAOImpl method generateAlarmsMap.

/**
	 * 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
	 *  
	 * @param families The FF read from the CDB
	 */
public void generateAlarmsMap(Vector<FaultFamily> families) {
    if (families == null) {
        throw new IllegalArgumentException("Invalid null vector of FFs");
    }
    for (FaultFamily family : families) {
        String FF = family.getName();
        String helpUrl = family.getHelpUrl();
        String source = family.getAlarmSource();
        Contact contactPerson = family.getContact();
        FaultMember[] FMs = family.getFaultMember();
        FaultMemberDefault defaultFM = family.getFaultMemberDefault();
        FaultCode[] FCs = family.getFaultCode();
        // There should be at least one FC in the CDB
        if (FCs == null || FCs.length == 0) {
            logger.log(AcsLogLevel.WARNING, "No FC defined for family " + family.getName());
            continue;
        }
        // There should be at least one FM or a default FM defined in the CDB
        if (defaultFM == null && (FMs == null || FMs.length == 0)) {
            logger.log(AcsLogLevel.WARNING, "No FM defined for family " + family.getName());
            continue;
        }
        // Iterate over the FCs
        for (FaultCode code : FCs) {
            int FC = code.getValue();
            int priority = code.getPriority();
            String action = code.getAction();
            String cause = code.getCause();
            String consequence = code.getConsequence();
            String problemDesc = code.getProblemDescription();
            boolean instant = code.getInstant();
            // Iterate over all the FMs
            for (FaultMember member : FMs) {
                alma.acs.alarmsystem.generated.Location loc = member.getLocation();
                if (loc == null) {
                    loc = new alma.acs.alarmsystem.generated.Location();
                }
                if (loc.getBuilding() == null) {
                    loc.setBuilding("");
                }
                if (loc.getFloor() == null) {
                    loc.setFloor("");
                }
                if (loc.getMnemonic() == null) {
                    loc.setMnemonic("");
                }
                if (loc.getPosition() == null) {
                    loc.setPosition("");
                }
                if (loc.getRoom() == null) {
                    loc.setRoom("");
                }
                String FM = member.getName();
                if (FM.equals(DEFAULT_FM)) {
                    logger.log(AcsLogLevel.ERROR, "In the CDB, FM=" + DEFAULT_FM + " in family " + FF + " is not allowed");
                }
                AlarmImpl alarm = new AlarmImpl();
                alarm.setMultiplicityChildrenIds(new HashSet());
                alarm.setMultiplicityParentIds(new HashSet());
                alarm.setNodeChildrenIds(new HashSet());
                alarm.setNodeParentIds(new HashSet());
                alarm.setAction(action);
                alarm.setTriplet(new Triplet(FF, FM, FC));
                alarm.setCategories(new HashSet<Category>());
                alarm.setCause(cause);
                alarm.setConsequence(consequence);
                alarm.setProblemDescription(problemDesc);
                try {
                    alarm.setHelpURL(new URL(helpUrl));
                } catch (MalformedURLException e) {
                    alarm.setHelpURL(null);
                }
                alarm.setInstant(instant);
                Location location = new Location("0", loc.getFloor(), loc.getMnemonic(), loc.getPosition(), loc.getRoom());
                alarm.setLocation(location);
                if (contactPerson.getEmail() != null) {
                    alarm.setPiquetEmail(contactPerson.getEmail());
                } else {
                    alarm.setPiquetEmail("");
                }
                if (contactPerson.getGsm() != null) {
                    alarm.setPiquetGSM(contactPerson.getGsm());
                } else {
                    alarm.setPiquetGSM("");
                }
                alarm.setPriority(priority);
                ResponsiblePerson responsible = new ResponsiblePerson(0, contactPerson.getName(), "", contactPerson.getEmail(), contactPerson.getGsm(), "");
                alarm.setResponsiblePerson(responsible);
                SourceDefinition srcDef = new SourceDefinition(source, "SOURCE", "", 15, 1);
                Source src = new Source(srcDef, responsible);
                alarm.setSource(src);
                alarm.setIdentifier(alarm.getTriplet().toIdentifier());
                alarmDefs.put(alarm.getAlarmId(), alarm);
                if (!srcDefs.containsKey(source)) {
                    srcDefs.put(src.getSourceId(), src);
                    logger.log(AcsLogLevel.DEBUG, "Source " + src.getName() + " (id=" + src.getSourceId() + ") added");
                }
                logger.log(AcsLogLevel.DEBUG, "Alarm added " + alarm.getAlarmId());
            }
            // Add the default
            if (defaultFM != null) {
                alma.acs.alarmsystem.generated.Location loc = defaultFM.getLocation();
                if (loc == null) {
                    loc = new alma.acs.alarmsystem.generated.Location();
                }
                if (loc.getBuilding() == null) {
                    loc.setBuilding("");
                }
                if (loc.getFloor() == null) {
                    loc.setFloor("");
                }
                if (loc.getMnemonic() == null) {
                    loc.setMnemonic("");
                }
                if (loc.getPosition() == null) {
                    loc.setPosition("");
                }
                if (loc.getRoom() == null) {
                    loc.setRoom("");
                }
                AlarmImpl defaultAlarm = new AlarmImpl();
                defaultAlarm.setMultiplicityChildrenIds(new HashSet());
                defaultAlarm.setMultiplicityParentIds(new HashSet());
                defaultAlarm.setNodeChildrenIds(new HashSet());
                defaultAlarm.setNodeParentIds(new HashSet());
                defaultAlarm.setAction(action);
                defaultAlarm.setCategories(new HashSet<Category>());
                defaultAlarm.setCause(cause);
                defaultAlarm.setConsequence(consequence);
                defaultAlarm.setProblemDescription(problemDesc);
                try {
                    defaultAlarm.setHelpURL(new URL(helpUrl));
                } catch (MalformedURLException e) {
                    defaultAlarm.setHelpURL(null);
                }
                defaultAlarm.setInstant(instant);
                Location location = new Location("0", loc.getFloor(), loc.getMnemonic(), loc.getPosition(), loc.getRoom());
                defaultAlarm.setLocation(location);
                defaultAlarm.setPiquetEmail(contactPerson.getEmail());
                defaultAlarm.setPiquetGSM(contactPerson.getGsm());
                defaultAlarm.setPriority(priority);
                ResponsiblePerson responsible = new ResponsiblePerson(0, contactPerson.getName(), "", contactPerson.getEmail(), contactPerson.getGsm(), "");
                defaultAlarm.setResponsiblePerson(responsible);
                SourceDefinition srcDef = new SourceDefinition(source, "SOURCE", "", 15, 1);
                Source src = new Source(srcDef, responsible);
                defaultAlarm.setSource(src);
                defaultAlarm.setIdentifier(defaultAlarm.getTriplet().toIdentifier());
                Triplet triplet = new Triplet(FF, DEFAULT_FM, FC);
                defaultAlarm.setTriplet(triplet);
                defaultAlarm.setIdentifier(triplet.toIdentifier());
                alarmDefs.put(defaultAlarm.getAlarmId(), defaultAlarm);
                if (!srcDefs.containsKey(source)) {
                    srcDefs.put(src.getSourceId(), src);
                    logger.log(AcsLogLevel.DEBUG, "Source " + src.getName() + " (id=" + src.getSourceId() + ") added");
                }
                logger.log(AcsLogLevel.DEBUG, "Default alarm added " + defaultAlarm.getAlarmId());
            }
        }
    }
}
Also used : FaultCode(alma.acs.alarmsystem.generated.FaultCode) MalformedURLException(java.net.MalformedURLException) SourceDefinition(cern.laser.business.definition.data.SourceDefinition) Category(cern.laser.business.data.Category) URL(java.net.URL) Source(cern.laser.business.data.Source) InputSource(org.xml.sax.InputSource) ResponsiblePerson(cern.laser.business.data.ResponsiblePerson) HashSet(java.util.HashSet) FaultMember(alma.acs.alarmsystem.generated.FaultMember) Triplet(cern.laser.business.data.Triplet) Contact(alma.acs.alarmsystem.generated.Contact) FaultMemberDefault(alma.acs.alarmsystem.generated.FaultMemberDefault) FaultFamily(alma.acs.alarmsystem.generated.FaultFamily) AlarmImpl(cern.laser.business.data.AlarmImpl) Location(cern.laser.business.data.Location)

Example 9 with FaultCode

use of alma.acs.alarmsystem.generated.FaultCode in project ACS by ACS-Community.

the class ACSAlarmDAOImplTest method testAddFaultFamily.

public void testAddFaultFamily() {
    boolean exception;
    Alarm al1;
    cern.laser.business.data.Location l;
    //Delete Entry if it exists due to an error in previous test
    {
        FaultFamily ff = new FaultFamily();
        ff.setName("ffTest1");
        try {
            _alarmDAO.removeFaultFamily(ff);
        } catch (Exception e) {
        //This happens when FaultFamily "ffTest1" doesn't exist
        }
    }
    //Check Null Argument
    exception = false;
    try {
        _alarmDAO.addFaultFamily(null);
    } catch (Exception e) {
        exception = true;
    }
    assertTrue(exception);
    //Check new FaultFamily
    FaultFamily ff = new FaultFamily();
    ff.setName("ffTest1");
    ff.setAlarmSource("ALARM_SYSTEM_SOURCES");
    ff.setHelpUrl("http://www.test.com");
    Contact ct = new Contact();
    ct.setEmail("em1");
    ct.setGsm("gsm1");
    ct.setName("cont1");
    ff.setContact(ct);
    FaultCode fc = new FaultCode();
    fc.setValue(1);
    fc.setPriority(0);
    fc.setAction("action1");
    fc.setCause("cause1");
    fc.setConsequence("conseq1");
    fc.setProblemDescription("problem1");
    ff.addFaultCode(fc);
    FaultMemberDefault fmd = new FaultMemberDefault();
    Location lc = new Location();
    lc.setBuilding("b1");
    lc.setFloor("f1");
    lc.setMnemonic("m1");
    lc.setPosition("p1");
    lc.setRoom("r1");
    fmd.setLocation(lc);
    ff.setFaultMemberDefault(fmd);
    FaultMember fm = new FaultMember();
    fm.setName("fmTest1");
    lc = new Location();
    lc.setBuilding("b2");
    lc.setFloor("f2");
    lc.setMnemonic("m2");
    lc.setPosition("p2");
    lc.setRoom("r2");
    fm.setLocation(lc);
    ff.addFaultMember(fm);
    exception = false;
    try {
        _alarmDAO.addFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1");
    assertNotNull(al1);
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    assertEquals("http://www.test.com", al1.getHelpURL().toString());
    assertEquals("em1", al1.getPiquetEmail());
    assertEquals("gsm1", al1.getPiquetGSM());
    assertEquals("cont1", al1.getResponsiblePerson().getFamilyName());
    assertEquals(0, al1.getPriority().intValue());
    assertEquals("action1", al1.getAction());
    assertEquals("cause1", al1.getCause());
    assertEquals("conseq1", al1.getConsequence());
    assertEquals("problem1", al1.getProblemDescription());
    l = al1.getLocation();
    assertNotNull(l);
    //assertEquals("b2",l.getBuilding()); //Null
    assertEquals("f2", l.getFloor());
    assertEquals("m2", l.getMnemonic());
    assertEquals("p2", l.getPosition());
    assertEquals("r2", l.getRoom());
    //Check if it already exists
    exception = false;
    try {
        _alarmDAO.addFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertTrue(exception);
}
Also used : FaultCode(alma.acs.alarmsystem.generated.FaultCode) FaultMember(alma.acs.alarmsystem.generated.FaultMember) FaultFamily(alma.acs.alarmsystem.generated.FaultFamily) Alarm(cern.laser.business.data.Alarm) Contact(alma.acs.alarmsystem.generated.Contact) FaultMemberDefault(alma.acs.alarmsystem.generated.FaultMemberDefault) Location(alma.acs.alarmsystem.generated.Location)

Example 10 with FaultCode

use of alma.acs.alarmsystem.generated.FaultCode in project ACS by ACS-Community.

the class ACSAlarmDAOImplTest method testUpdateFaultFamily.

public void testUpdateFaultFamily() {
    boolean exception;
    Alarm al1;
    cern.laser.business.data.Location l;
    //Delete Entry if it exists due to an error in previous test
    {
        FaultFamily ff = new FaultFamily();
        ff.setName("ffTest1");
        try {
            _alarmDAO.removeFaultFamily(ff);
        } catch (Exception e) {
        //This happens when FaultFamily "ffTest1" doesn't exist
        }
    }
    //Check Null Argument
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(null);
    } catch (Exception e) {
        exception = true;
    }
    assertTrue(exception);
    //Update a FaultFamily that doesn't exist
    FaultFamily ff = new FaultFamily();
    ff.setName("ffTest1");
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertTrue(exception);
    //Check updating FaultFamily
    ff.setAlarmSource("ALARM_SYSTEM_SOURCES");
    ff.setHelpUrl("http://www.test.com");
    Contact ct = new Contact();
    ct.setEmail("em1");
    ct.setGsm("gsm1");
    ct.setName("cont1");
    ff.setContact(ct);
    FaultCode fc = new FaultCode();
    fc.setValue(1);
    fc.setPriority(0);
    fc.setAction("action1");
    fc.setCause("cause1");
    fc.setConsequence("conseq1");
    fc.setProblemDescription("problem1");
    ff.addFaultCode(fc);
    FaultMember fm = new FaultMember();
    fm.setName("fmTest1");
    Location lc = new Location();
    lc.setBuilding("b2");
    lc.setFloor("f2");
    lc.setMnemonic("m2");
    lc.setPosition("p2");
    lc.setRoom("r2");
    fm.setLocation(lc);
    ff.addFaultMember(fm);
    exception = false;
    try {
        _alarmDAO.addFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    //Update FF information
    //ff.setAlarmSource("ALARM_SYSTEM_SOURCES2");//Can't be changed at the moment.
    ff.setHelpUrl("http://www.test2.com");
    ct.setEmail("em2");
    ct.setGsm("gsm2");
    ct.setName("cont2");
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest1:1");
    assertNotNull(al1);
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName());
    assertEquals("http://www.test2.com", al1.getHelpURL().toString());
    assertEquals("em2", al1.getPiquetEmail());
    assertEquals("gsm2", al1.getPiquetGSM());
    assertEquals("cont2", al1.getResponsiblePerson().getFamilyName());
    assertEquals(0, al1.getPriority().intValue());
    assertEquals("action1", al1.getAction());
    assertEquals("cause1", al1.getCause());
    assertEquals("conseq1", al1.getConsequence());
    assertEquals("problem1", al1.getProblemDescription());
    l = al1.getLocation();
    //assertEquals("b2",l.getBuilding());
    assertEquals("f2", l.getFloor());
    assertEquals("m2", l.getMnemonic());
    assertEquals("p2", l.getPosition());
    assertEquals("r2", l.getRoom());
    //Update FM Information
    fm.setName("fmTest2");
    lc.setBuilding("b3");
    lc.setFloor("f3");
    lc.setMnemonic("m3");
    lc.setPosition("p3");
    lc.setRoom("r3");
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:1");
    assertNotNull(al1);
    //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName());
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    assertEquals("http://www.test2.com", al1.getHelpURL().toString());
    assertEquals("em2", al1.getPiquetEmail());
    assertEquals("gsm2", al1.getPiquetGSM());
    assertEquals("cont2", al1.getResponsiblePerson().getFamilyName());
    assertEquals(0, al1.getPriority().intValue());
    assertEquals("action1", al1.getAction());
    assertEquals("cause1", al1.getCause());
    assertEquals("conseq1", al1.getConsequence());
    assertEquals("problem1", al1.getProblemDescription());
    l = al1.getLocation();
    //assertEquals("b3",l.getBuilding());
    assertEquals("f3", l.getFloor());
    assertEquals("m3", l.getMnemonic());
    assertEquals("p3", l.getPosition());
    assertEquals("r3", l.getRoom());
    //Update FC Information
    fc.setValue(2);
    fc.setPriority(1);
    fc.setAction("action2");
    fc.setCause("cause2");
    fc.setConsequence("conseq2");
    fc.setProblemDescription("problem2");
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:2");
    assertNotNull(al1);
    //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName());
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    assertEquals("http://www.test2.com", al1.getHelpURL().toString());
    assertEquals("em2", al1.getPiquetEmail());
    assertEquals("gsm2", al1.getPiquetGSM());
    assertEquals("cont2", al1.getResponsiblePerson().getFamilyName());
    assertEquals(1, al1.getPriority().intValue());
    assertEquals("action2", al1.getAction());
    assertEquals("cause2", al1.getCause());
    assertEquals("conseq2", al1.getConsequence());
    assertEquals("problem2", al1.getProblemDescription());
    l = al1.getLocation();
    //assertEquals("b3",l.getBuilding());
    assertEquals("f3", l.getFloor());
    assertEquals("m3", l.getMnemonic());
    assertEquals("p3", l.getPosition());
    assertEquals("r3", l.getRoom());
    //Update Add FM
    FaultMember fm2 = new FaultMember();
    fm2.setName("fmTest3");
    Location lc2 = new Location();
    lc2.setBuilding("b4");
    lc2.setFloor("f4");
    lc2.setMnemonic("m4");
    lc2.setPosition("p4");
    lc2.setRoom("r4");
    fm2.setLocation(lc2);
    ff.addFaultMember(fm2);
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2");
    assertNotNull(al1);
    //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName());
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    assertEquals("http://www.test2.com", al1.getHelpURL().toString());
    assertEquals("em2", al1.getPiquetEmail());
    assertEquals("gsm2", al1.getPiquetGSM());
    assertEquals("cont2", al1.getResponsiblePerson().getFamilyName());
    assertEquals(1, al1.getPriority().intValue());
    assertEquals("action2", al1.getAction());
    assertEquals("cause2", al1.getCause());
    assertEquals("conseq2", al1.getConsequence());
    assertEquals("problem2", al1.getProblemDescription());
    l = al1.getLocation();
    //assertEquals("b4",l.getBuilding());
    assertEquals("f4", l.getFloor());
    assertEquals("m4", l.getMnemonic());
    assertEquals("p4", l.getPosition());
    assertEquals("r4", l.getRoom());
    //Update Add FC
    FaultCode fc2 = new FaultCode();
    fc2.setValue(3);
    fc2.setPriority(2);
    fc2.setAction("action3");
    fc2.setCause("cause3");
    fc2.setConsequence("conseq3");
    fc2.setProblemDescription("problem3");
    ff.addFaultCode(fc2);
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3");
    assertNotNull(al1);
    //assertEquals("ALARM_SYSTEM_SOURCES2",al1.getSource().getName());
    assertEquals("ALARM_SYSTEM_SOURCES", al1.getSource().getName());
    assertEquals("http://www.test2.com", al1.getHelpURL().toString());
    assertEquals("em2", al1.getPiquetEmail());
    assertEquals("gsm2", al1.getPiquetGSM());
    assertEquals("cont2", al1.getResponsiblePerson().getFamilyName());
    assertEquals(2, al1.getPriority().intValue());
    assertEquals("action3", al1.getAction());
    assertEquals("cause3", al1.getCause());
    assertEquals("conseq3", al1.getConsequence());
    assertEquals("problem3", al1.getProblemDescription());
    l = al1.getLocation();
    //assertEquals("b4",l.getBuilding());
    assertEquals("f4", l.getFloor());
    assertEquals("m4", l.getMnemonic());
    assertEquals("p4", l.getPosition());
    assertEquals("r4", l.getRoom());
    //Update Remove FM
    ff.removeFaultMember(fm);
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:2");
    assertNull(al1);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest2:3");
    assertNull(al1);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2");
    assertNotNull(al1);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3");
    assertNotNull(al1);
    //Update Remove FC
    ff.removeFaultCode(fc);
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:2");
    assertNull(al1);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3");
    assertNotNull(al1);
    //Update Add Default FM
    FaultMemberDefault fmd = new FaultMemberDefault();
    lc = new Location();
    lc.setBuilding("b1");
    lc.setFloor("f1");
    lc.setMnemonic("m1");
    lc.setPosition("p1");
    lc.setRoom("r1");
    fmd.setLocation(lc);
    ff.setFaultMemberDefault(fmd);
    exception = false;
    try {
        _alarmDAO.updateFaultFamily(ff);
    } catch (Exception e) {
        exception = true;
    }
    assertFalse(exception);
    al1 = _alarmDAO.getAlarm("ffTest1:any:3");
    assertNotNull(al1);
    al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3");
    assertNotNull(al1);
//Update Remove Default FM
//ff.removeFaultMemberDefault(); Missing method?
/*
		exception = false;
		try{
			_alarmDAO.updateFaultFamily(ff);
		}catch(Exception e){
			exception = true;
		}
		assertFalse(exception);
		al1 = _alarmDAO.getAlarm("ffTest1:any:3");
		assertNull(al1);
		al1 = _alarmDAO.getAlarm("ffTest1:fmTest3:3");
		assertNotNull(al1);
		*/
}
Also used : FaultCode(alma.acs.alarmsystem.generated.FaultCode) FaultMember(alma.acs.alarmsystem.generated.FaultMember) FaultFamily(alma.acs.alarmsystem.generated.FaultFamily) Alarm(cern.laser.business.data.Alarm) Contact(alma.acs.alarmsystem.generated.Contact) Location(alma.acs.alarmsystem.generated.Location) FaultMemberDefault(alma.acs.alarmsystem.generated.FaultMemberDefault)

Aggregations

FaultCode (alma.acs.alarmsystem.generated.FaultCode)22 FaultFamily (alma.acs.alarmsystem.generated.FaultFamily)19 FaultMember (alma.acs.alarmsystem.generated.FaultMember)12 Contact (alma.acs.alarmsystem.generated.Contact)6 FaultMemberDefault (alma.acs.alarmsystem.generated.FaultMemberDefault)6 Alarm (cern.laser.business.data.Alarm)6 Point (org.eclipse.swt.graphics.Point)5 Location (alma.acs.alarmsystem.generated.Location)4 ArrayList (java.util.ArrayList)4 TreeItem (org.eclipse.swt.widgets.TreeItem)4 Triplet (cern.laser.business.data.Triplet)3 IllegalOperationException (cl.utfsm.acs.acg.core.IllegalOperationException)3 ReductionRule (cl.utfsm.acs.acg.core.ReductionRule)3 ACSAlarmDAOImpl (cl.utfsm.acs.acg.dao.ACSAlarmDAOImpl)3 Vector (java.util.Vector)3 SelectionEvent (org.eclipse.swt.events.SelectionEvent)3 SelectionListener (org.eclipse.swt.events.SelectionListener)3 GridData (org.eclipse.swt.layout.GridData)3 GridLayout (org.eclipse.swt.layout.GridLayout)3 Event (org.eclipse.swt.widgets.Event)3