1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.qedeq.kernel.bo.service.unicode;
17
18 import java.io.IOException;
19
20 import org.qedeq.base.io.Parameters;
21 import org.qedeq.base.io.StringOutput;
22 import org.qedeq.base.trace.Trace;
23 import org.qedeq.kernel.bo.log.QedeqLog;
24 import org.qedeq.kernel.bo.module.InternalModuleServiceCall;
25 import org.qedeq.kernel.bo.module.InternalServiceJob;
26 import org.qedeq.kernel.bo.module.KernelQedeqBo;
27 import org.qedeq.kernel.bo.service.basis.ModuleServicePluginExecutor;
28 import org.qedeq.kernel.se.common.ModuleService;
29 import org.qedeq.kernel.se.common.SourceFileExceptionList;
30
31
32
33
34
35
36
37
38
39
40 public final class Qedeq2UnicodeTextExecutor implements ModuleServicePluginExecutor {
41
42
43 private static final Class CLASS = Qedeq2UnicodeTextExecutor.class;
44
45
46 private StringOutput printer;
47
48
49 private String language;
50
51
52 private final Qedeq2UnicodeVisitor visitor;
53
54
55
56
57
58
59
60
61
62 Qedeq2UnicodeTextExecutor(final ModuleService plugin, final KernelQedeqBo prop,
63 final Parameters parameters) {
64 language = parameters.getString("language");
65 final boolean info = parameters.getBoolean("info");
66
67 int maxColumns = parameters.getInt("maximumColumn");
68 maxColumns = Math.max(10, maxColumns);
69 visitor = new Qedeq2UnicodeVisitor(plugin, prop, info , maxColumns, false, false);
70 }
71
72 public Object executePlugin(final InternalModuleServiceCall call, final Object data) {
73 final String method = "executePlugin()";
74 String result = "";
75 try {
76 QedeqLog.getInstance().logRequest("Show UTF-8 text", visitor.getKernelQedeqBo().getUrl());
77 result = generateUtf8(call.getInternalServiceProcess(), language, "1");
78 QedeqLog.getInstance().logSuccessfulReply(
79 "UTF-8 text was shown", visitor.getKernelQedeqBo().getUrl());
80 } catch (final SourceFileExceptionList e) {
81 final String msg = "Generation failed";
82 Trace.fatal(CLASS, this, method, msg, e);
83 QedeqLog.getInstance().logFailureReply(msg, visitor.getKernelQedeqBo().getUrl(), e.getMessage());
84 } catch (IOException e) {
85 final String msg = "Generation failed";
86 Trace.fatal(CLASS, this, method, msg, e);
87 QedeqLog.getInstance().logFailureReply(msg, visitor.getKernelQedeqBo().getUrl(), e.getMessage());
88 } catch (final RuntimeException e) {
89 Trace.fatal(CLASS, this, method, "unexpected problem", e);
90 QedeqLog.getInstance().logFailureReply(
91 "Generation failed", visitor.getKernelQedeqBo().getUrl(), "unexpected problem: "
92 + (e.getMessage() != null ? e.getMessage() : e.toString()));
93 }
94 return result;
95 }
96
97
98
99
100
101
102
103
104
105
106
107
108 public String generateUtf8(final InternalServiceJob process, final String language,
109 final String level) throws SourceFileExceptionList, IOException {
110
111 String lan = "en";
112 if (language != null) {
113 lan = language;
114 }
115 printer = new StringOutput();
116
117 visitor.generateUtf8(process, printer, lan, level);
118 return printer.toString();
119 }
120
121 public String getLocationDescription() {
122 return visitor.getLocationDescription();
123 }
124
125 public double getVisitPercentage() {
126 return visitor.getVisitPercentage();
127 }
128
129 public boolean getInterrupted() {
130 return visitor.getInterrupted();
131 }
132
133 }