14 package cz.vutbr.fit.knot.annotations.comet;
21 import java.util.ArrayList;
22 import java.util.Iterator;
23 import java.util.List;
24 import java.util.concurrent.locks.ReentrantLock;
25 import java.util.logging.Level;
26 import java.util.logging.Logger;
41 modules =
new ArrayList<AnnotServerModule>();
64 requestInfo.setCanNotify(
false);
68 Iterator<AnnotServerModule> moduleIter = modules.iterator();
69 while (moduleIter.hasNext()) {
72 response = response + module.processRequestBeforePersist(requestInfo);
73 }
catch (Exception e) {
74 int lNum = requestInfo.getSession().getLanguageNum();
75 int lod = requestInfo.getSession().getProtocolLOD();
76 String errInfo =
"<module name=\"" + module.getModuleName(lNum) +
"\"/>";
79 String msg =
"Exception in the server module " + module.getModuleName(lNum)
81 Logger.getLogger(ResponseCreator.class.getName()).log(Level.SEVERE, msg, e);
87 boolean persistFailed = Persister.persist(requestInfo);
90 int lNum = requestInfo.getSession().getLanguageNum();
91 int lod = requestInfo.getSession().getProtocolLOD();
93 requestInfo.setCanNotify(
false);
97 moduleIter = modules.iterator();
98 while (moduleIter.hasNext()) {
101 response = response + module.processRequestAfterPersist(requestInfo, persistFailed);
102 }
catch (Exception e) {
103 int lNum = requestInfo.getSession().getLanguageNum();
104 int lod = requestInfo.getSession().getProtocolLOD();
105 String errInfo =
"<module name=\"" + module.getModuleName(requestInfo.getSession().getLanguageNum()) +
"\"/>";
108 String msg =
"Exception in the server module " + module.getModuleName(lNum)
110 Logger.getLogger(ResponseCreator.class.getName()).log(Level.SEVERE, msg, e);
119 if ((requestInfo.
getSettings() != null && !requestInfo.getSettings().isEmpty()) || requestInfo.
getLoggedIn() != null) {
129 ReentrantLock lock = AppBean.documentURILocker.get(requestInfo.getSyncDocumentData().getUri());
149 String response =
"";
151 Iterator<AnnotServerModule> moduleIter = modules.iterator();
152 while (moduleIter.hasNext()) {
155 response = response + module.messagesFromFlier(flier,session);
156 }
catch (Exception e) {
157 int lNum = session.getLanguageNum();
158 String errInfo =
"<module name=\"" + module.getModuleName(session.getLanguageNum()) +
"\"/>";
161 String msg =
"Exception in the server module " + module.getModuleName(lNum)
162 +
" during the creating of comet response.";
163 Logger.getLogger(ResponseCreator.class.getName()).log(Level.SEVERE, msg, e);
178 String retString =
"";
179 Iterator setIter = requestInfo.getSession().getSettings().iterator();
180 while (setIter.hasNext()) {
182 retString = retString + param.toXMLString();
185 retString =
"<settings>" + retString +
"</settings>";
197 String retString =
"";
199 boolean proto11 = requestInfo.getSession().getProtocolLOD() > 1;
200 Iterator<Annotation> reloadedIter = requestInfo.getReloadAnnotations().iterator();
201 while (reloadedIter.hasNext()) {
203 Object[] params =
new Object[2];
205 params[1] = relAnnot.getId();
206 List rList = AppBean.getPersistenceManager().queryDB(
"Annotation.findById", params);
207 if (rList != null && !rList.isEmpty()) {
211 ArrayList<String> attFilter = requestInfo.getSession().getAttFilter();
212 int lNum = requestInfo.getSession().getLanguageNum();
213 Boolean KBRefMode = requestInfo.getSession().getKBRefMode();
214 retString = retString + relAnnot.toXMLStringV2(attFilter, lNum, KBRefMode);
216 retString = retString + relAnnot.toXMLString(proto11);
219 if (!retString.isEmpty()) {
221 return "<annotations><addAnnotations>" + retString +
"</addAnnotations></annotations>";
223 return "<annotations><change>" + retString +
"</change></annotations>";
253 this.modules.add(module);
263 return this.modules.remove(module);
ArrayList< AnnotServerModule > getModules()
Document, annotations and types manipulation functionality.
static HashMap< String, ReentrantLock > documentURILocker
static final int LOG_LEVEL_SERVER_INTERNAL_ERRORS
Singleton for storing global variables.
Class provides connection of SEC Dictionary module with server.
void addModule(AnnotServerModule module)
Class representing parameter of user settings.
void setModules(ArrayList< AnnotServerModule > modules)
Class implements module for suggestiong of annotations.
AnnotDocument getSyncDocumentData()
static final int LOG_LEVEL
Class provides connection of Storyscope Interface module with server.
String createSettings(RequestInfo requestInfo)
boolean removeModule(AnnotServerModule module)
Flier with informations for comet handlers.
EditorSession getSession()
Operations with persons (users of this server) and with user groups.
Interface for server module.
Class that creates responses and persists data.
static final int PROTOCOL_LOD_V2
ArrayList< AnnotServerModule > modules
Processed informations about client request.
static final int ERROR_48_PERSISTENCE_ERROR
Class responsible for localised strings.
Informations about client session.
String createPostResponse(RequestInfo requestInfo)
Class representing annotation.
String createCometResponse(Flier flier, EditorSession session)
ArrayList< Settings > getSettings()
static final int ERROR_33_MODULE_ERROR
String createReloadedAnnot(RequestInfo requestInfo)