KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > quikj > application > web > oamp > messaging > OAMPSystemMessageParser


1 package com.quikj.application.web.oamp.messaging;
2
3 // JAXP packages
4
import org.w3c.dom.*;
5
6 // NANOXML packages
7
import net.n3.nanoxml.*;
8
9 public class OAMPSystemMessageParser implements OAMPMessageParserInterface
10 {
11     public static final String JavaDoc OAMP_SYSTEM_FEATURE_NAME = "system";
12         
13     public OAMPSystemMessageParser()
14     {
15     }
16     
17     public boolean parse(Object JavaDoc message_element, boolean request)
18     {
19         message = null; // initialize
20
errorMessage = "";
21         String JavaDoc node_name;
22         
23         if (OAMPFrameworkMessageParser.getParserType() == OAMPFrameworkMessageParser.DOM_PARSER)
24         {
25             node_name = getDomNodeName(message_element);
26         }
27         else // NANOXML parser
28
{
29             node_name = getNanoNodeName(message_element);
30         }
31         
32         if (node_name.equals(OAMPSystemMessageTypes.REGISTRATION_NODE_NAME) == true)
33         {
34             if (request == true) // HTTP request
35
{
36                 OAMPMessageInterface msg = new RegistrationRequestMessage();
37                 if (msg.parse(message_element) == false) // parsing failed
38
{
39                     errorMessage = msg.getErrorMessage();
40                     return false;
41                 }
42                 message = msg;
43                 return true;
44             }
45             else // HTTP response
46
{
47                 OAMPMessageInterface msg = new RegistrationResponseMessage();
48                 if (msg.parse(message_element) == false) // parsing failed
49
{
50                     errorMessage = msg.getErrorMessage();
51                     return false;
52                 }
53                 message = msg;
54                 return true;
55             }
56         }
57         else if (node_name.equals(OAMPSystemMessageTypes.LOG_NODE_NAME) == true)
58         {
59             if (request == true) // HTTP request
60
{
61                 OAMPMessageInterface msg = new LogRequestMessage();
62                 if (msg.parse(message_element) == false) // parsing failed
63
{
64                     errorMessage = msg.getErrorMessage();
65                     return false;
66                 }
67                 message = msg;
68                 return true;
69             }
70             else // HTTP response
71
{
72                 errorMessage = "Unsupported OAMP system message type: "
73                 + node_name
74                 + " received";
75                 return false;
76             }
77         }
78         else
79         {
80             errorMessage = "Unsupported OAMP system message type: "
81             + node_name
82             + " received";
83             return false;
84         }
85        
86     }
87     
88     private String JavaDoc getDomNodeName(Object JavaDoc message_element)
89     {
90         return ((Node)message_element).getNodeName();
91     }
92     
93     private String JavaDoc getNanoNodeName(Object JavaDoc message_element)
94     {
95         return ((IXMLElement)message_element).getFullName();
96     }
97     
98     public OAMPMessageInterface getMessage()
99     {
100         return message;
101     }
102     
103     public String JavaDoc getErrorMessage()
104     {
105         return errorMessage;
106     }
107         
108     private OAMPMessageInterface message;
109     private String JavaDoc errorMessage = "";
110     
111 }
112
Popular Tags