private Tl1AutonomousMessage detectMessageType(StringBuilder rawMessage) { //check token 5 to see if this is a reply message. This implies that the Tl1Client must //track message TAGs (Correlation TAGs (CTAG) vs. Autonomous TAGs (ATAG)) if(isAutonomousMessage(rawMessage)) { return m_messageProcessor.process(rawMessage.toString(), Tl1Message.AUTONOMOUS); } return null; }
private void processAutoBlock(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundId = false; while(!foundId ) { while (lineParser.hasMoreElements() && !foundId) { String line = (String) lineParser.nextElement(); if (line != null && !(line.equals(message.getTerminator()))) { foundId = true; foundId = parseAutoBlock(line.trim(), message); //message.getAutoBlock().setBlock(line.trim()); } } } }
private void processHeader(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundHeader = false; while(!foundHeader ) { while (lineParser.hasMoreTokens() && !foundHeader) { String line = (String) lineParser.nextToken(); if (line != null && !(line.equals(message.getTerminator()))) { try { foundHeader = parseHeader(line, message); } catch (IllegalArgumentException e) { } } } } if (!foundHeader) { throw new IllegalStateException("No TL1 Header found in: "+lineParser.toString()); } }
/** {@inheritDoc} */ @Override public Tl1AutonomousMessage process(String rawMessage, int messageType) { StringTokenizer lineParser = new StringTokenizer(rawMessage, "\n"); Tl1AutonomousMessage message = new Tl1AutonomousMessage(rawMessage); try { processHeader(lineParser, message); processId(lineParser, message); processAutoBlock(lineParser, message); } catch (IllegalStateException e) { return null; } return message; }
private void processId(StringTokenizer lineParser, Tl1AutonomousMessage message) { boolean foundId = false; while(!foundId ) { while (lineParser.hasMoreElements() && !foundId) { String line = (String) lineParser.nextElement(); if (line != null && !(line.equals(message.getTerminator()))) { foundId = parseId(line, message); } } } }
public void testProcess() { String sampleMessage = " GPON15000 2008-07-31 18:29:49\n" + "*C 0 REPT ALM BITS\n" + " \"1-4:NTFCNCDE=CR,CONDTYPE=FAIL,SRVEFF=SA,OCRDAT=09-23,OCRTM=02-03-04,LOCN=NEND,DIRN=RCV\"\n" + ";\n" + ""; Tl1AutonomousMessage alarm = m_processor.process(sampleMessage, Tl1Message.AUTONOMOUS); assertNotNull(alarm.getRawMessage()); assertNotNull(alarm.getHeader()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); assertEquals("2008-07-31", formatter.format(alarm.getHeader().getTimestamp())); formatter = new SimpleDateFormat("HH:mm:ss"); assertEquals("18:29:49", formatter.format(alarm.getHeader().getTimestamp())); assertEquals("GPON15000", alarm.getHost()); assertEquals("GPON15000", alarm.getHeader().getSid()); assertEquals(alarm.getTimestamp(), alarm.getHeader().getTimestamp()); assertEquals("*C 0 REPT ALM BITS", alarm.getId().getRawMessage()); assertEquals("*C", alarm.getId().getAlarmCode()); assertEquals("0", alarm.getId().getAlarmTag()); assertEquals("REPT ALM BITS", alarm.getId().getVerb()); assertEquals("\"1-4:NTFCNCDE=CR,CONDTYPE=FAIL,SRVEFF=SA,OCRDAT=09-23,OCRTM=02-03-04,LOCN=NEND,DIRN=RCV\"", alarm.getAutoBlock().getBlock()); assertEquals("CR", alarm.getAutoBlock().getNtfcncde()); }
""; Tl1AutonomousMessage alarm = m_processor.process(sampleMessage, Tl1Message.AUTONOMOUS);