MessageHandlerXML.java
3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/*
* Decompiled with CFR 0_118.
*/
package com.adobe.xfa.agent;
import com.adobe.xfa.AppModel;
import com.adobe.xfa.Attribute;
import com.adobe.xfa.DOMSaveOptions;
import com.adobe.xfa.Document;
import com.adobe.xfa.Element;
import com.adobe.xfa.LogMessage;
import com.adobe.xfa.LogMessageData;
import com.adobe.xfa.LogMessageHandler;
import com.adobe.xfa.LogMessenger;
import com.adobe.xfa.Node;
import com.adobe.xfa.TextNode;
import com.adobe.xfa.ut.StringUtils;
import java.io.OutputStream;
public class MessageHandlerXML
extends LogMessageHandler {
private OutputStream moStream = null;
private Document moDomDoc = null;
private Element moRootDomElem = null;
public MessageHandlerXML(OutputStream oSource) {
this.moStream = oSource;
}
@Override
public void flush() {
if (this.moDomDoc != null) {
DOMSaveOptions oOptions = new DOMSaveOptions();
oOptions.setDisplayFormat(2);
oOptions.setIncludeDTD(false);
this.moDomDoc.saveAs(this.moStream, this.moRootDomElem, oOptions);
}
}
@Override
public void sendMessage(LogMessage oMessage) {
if (this.moDomDoc == null) {
AppModel app = new AppModel(null);
this.moDomDoc = app.getDocument();
app.newDOM();
this.moRootDomElem = this.moDomDoc.createElementNS("", "log", null);
this.moDomDoc.appendChild(this.moRootDomElem);
}
int nSize = oMessage.count();
for (int i = 0; i < nSize; ++i) {
this.sendMessageData(oMessage.get(i));
}
}
private void sendMessageData(LogMessageData oMessageData) {
if (oMessageData.getSeverity() < this.getThreshold()) {
return;
}
Document doc = this.moRootDomElem.getOwnerDocument();
Element message = doc.createElementNS("", "m", null);
String sMsgId = "mid";
String sThreadId = "tid";
String sSeverity = "sev";
String sDateTime = "d";
String sRef = "ref";
String sTidValue = Thread.currentThread().getName();
Integer nMsgId = oMessageData.getId();
String sSeverityValue = this.getSeverity(oMessageData.getSeverity());
String sDateTimeValue = oMessageData.getDateTime();
if (oMessageData.getSeverity() == 5 || oMessageData.getSeverity() == 4) {
message.setAttribute("", sRef, sRef, oMessageData.getSOMExpression());
} else {
message.setAttribute("", sMsgId, sMsgId, nMsgId.toString());
}
message.setAttribute("", sThreadId, sThreadId, sTidValue);
message.setAttribute("", sSeverity, sSeverity, sSeverityValue);
message.setAttribute("", sDateTime, sDateTime, sDateTimeValue);
if (!StringUtils.isEmpty(this.getAppContext())) {
String sAppContext = "app";
message.setAttribute("", sAppContext, sAppContext, this.getAppContext());
}
TextNode textVal = doc.getAppModel().createTextNode(null, null, oMessageData.getText());
message.appendChild(textVal, false);
this.moRootDomElem.appendChild(message, false);
}
private String getSeverity(int eSeverity) {
switch (eSeverity) {
case 6: {
return "f";
}
case 3: {
return "w";
}
case 2: {
return "i";
}
case 1: {
return "t";
}
case 5: {
return "ve";
}
case 4: {
return "vw";
}
}
return "";
}
}