KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > server > framework > AceLogMessageParser


1 package com.quikj.server.framework;
2
3 // JAXP packages
4
import org.w3c.dom.*;
5
6
7 // Logger Trace Information message (LogProcessor ----> client applications)
8
// <?xml version="1.0" encoding="us-ascii"?>
9

10 // <logger_trace_info_message log_group="group">
11

12 // <trace_information id="id1">
13
// <trace_constraint constraint="cons1"/>
14
// <trace_constraint constraint="cons2"/>
15
// <trace_constraint constraint="cons3"/>
16
// </trace_information>
17
//
18
// <trace_information id="id2">
19
// <trace_constraint constraint="cons1"/>
20
// <trace_constraint constraint="cons2"/>
21
// <trace_constraint constraint="cons3"/>
22
// </trace_information>
23
//
24
// </logger_trace_info_message>
25

26
27 // Logger Trace Request Message (client application ----> LogProcessor)
28
// <?xml version="1.0" encoding="us-ascii"?>
29

30 // <logger_trace_req_message log_group="group">
31
// </logger_trace_req_message>
32

33 // Log Message (client application ----> LogProcessor)
34
// <?xml version="1.0" encoding="us-ascii"?>
35

36 // <logger_message log_group="group">
37
// <time_stamp time="time"/>
38
// <host_name name="host"/>
39
// <appl_name name="id"/>
40
// <appl_instance instance="instance"/>
41
// <msg_severity severity="severity"/>
42
// <msg_type type="type"/>
43
// <msg_id id="id"/> (optional)
44
// <message>a message for you</message>
45
// </logger_message>
46

47
48 public class AceLogMessageParser
49 {
50     public static final String JavaDoc TRACE_INFO_MESSAGE = "logger_trace_info_message";
51     public static final String JavaDoc LOG_MESSAGE = "logger_message";
52     public static final String JavaDoc TRACE_REQ_MESSAGE = "logger_trace_req_message";
53     
54     public AceLogMessageParser(int group, Document doc)
55     throws AceException
56     {
57         if (doc.getNodeType() != Node.DOCUMENT_NODE)
58         {
59             // the root node must be of the type document
60

61             // throw up
62
throw new AceException("Received control message does not begin with an XML node");
63         }
64         
65         boolean node_found = false;
66         Node msg_node;
67         for (msg_node = doc.getFirstChild();
68         msg_node != null;
69         msg_node = msg_node.getNextSibling())
70         {
71             if (msg_node.getNodeType() == Node.ELEMENT_NODE)
72             {
73                 node_found = true;
74                 break;
75             }
76             // ignore all types other than the ELEMENT_NODE
77
}
78         
79         if (node_found == false)
80         {
81             // there must be at-least one child node
82

83             // throw up
84
throw new AceException("Received control message does not contain any child element node");
85         }
86         
87         String JavaDoc msg_type = msg_node.getNodeName();
88         if (msg_type.equals(TRACE_INFO_MESSAGE) == true)
89         {
90             messageElement = new AceTraceInfoMessage(group, msg_node);
91         }
92         else if (msg_type.equals(TRACE_REQ_MESSAGE) == true)
93         {
94             messageElement = new AceTraceReqMessage(group, msg_node);
95         }
96         else if (msg_type.equals(LOG_MESSAGE) == true)
97         {
98             messageElement = new AceLogMessage(group, msg_node);
99         }
100         else
101         {
102             throw new AceException("Unknown message type : "
103             + msg_type
104             + " received");
105         }
106     }
107     
108     public void dispose()
109     {
110     }
111     
112     public AceLogMessageInterface getMessageElement()
113     {
114         return messageElement;
115     }
116         
117     private AceLogMessageInterface messageElement = null;
118 }
119
120
121
122
123
124
125
126
127
128
129
Popular Tags