📄 calendarservice.java
字号:
((DefaultListModel)models.elementAt(i)).addElement(xCal);
}
}
/**
* implementation of QueryHandler for for synchronization.
*/
class SyncHandler implements QueryHandler{
protected String handlerName;
protected String credential;
protected Hashtable addressBook;
protected SimpleDateFormat format = new SimpleDateFormat("MM, dd, yyyy hh:mm:ss.S");
public SyncHandler(String handlerName,Hashtable addressBook, String credential){
this.handlerName = handlerName;
this.credential = credential;
this.addressBook = addressBook;
}// end of constructor PullHandler()
/**
* call back method, when messages are received by the ResolverService
* it calls back this method to deal with received responses
* @param response ResolverQueryMsg reponse
*
* @version $Revision: 1.1 $
* @since JXTA 1.0
*/
public void processResponse(ResolverResponseMsg response) {
System.out.println("Received a response");
String textDoc = response.getResponse();
if (textDoc ==null)return;
//System.out.println("Received a response:"+textDoc);
try{
ByteArrayInputStream in = new ByteArrayInputStream(textDoc.getBytes());
org.jdom.input.SAXBuilder builder = new org.jdom.input.SAXBuilder();
org.jdom.Document doc = builder.build(in);
org.jdom.Element root = doc.getRootElement();
//secific to todo/calendar
//root = root .getChild("event-list");
List book = (List) root .getChildren("icalendar");
ListIterator lister = book.listIterator();
while (lister.hasNext()){
org.jdom.Element address = (org.jdom.Element) lister.next();
//address = address .getChild("vcalendar");
//address = address .getChild("xcal");
System.out.println("Received a response:"+address.getText());
XMLOutputter putter = new XMLOutputter(" ",true);
StringWriter writer = new StringWriter();
putter.output(address,writer);
System.out.println(" sync messag:"+writer.toString());
String xml = writer.toString();
merge(new XCal(xml));
}
}catch(Exception je){//org.jdom.JDOMException je){
je.printStackTrace();
// return null;
}
//String textDoc = response.getResponse();
//System.out.println(textDoc);
System.out.println(((ResolverResponse)response).toString());
}// End of processResponse()
/**
* Process the resolver query, and generate response
* @return GenericResolverMsg Response to the query
* @param query ResolverQueryMsg query
*/
public ResolverResponseMsg processQuery(ResolverQueryMsg query) throws NoResponseException, ResendQueryException, DiscardQueryException{
try{
System.out.println("Received a synchronizer query");
org.jdom.Element root = new org.jdom.Element("event-list");//,format.format( new Date(now)));
org.jdom.Document doc = new org.jdom.Document(root);
Enumeration enum = addressBook.elements();
for(;enum.hasMoreElements();){
org.jdom.Document d2 =((XCal)enum.nextElement()).toJDOM();
org.jdom.Element ele = d2.getRootElement();
ele.detach();
root.addContent(ele);
}
// Return a generic response;
ResolverResponseMsg message = null;
XMLOutputter putter = new XMLOutputter(" ",true);
StringWriter writer = new StringWriter();
putter.output(doc,writer);
System.out.println(" sync messag:"+writer.toString());
message = new ResolverResponse(handlerName, credential,query.getQueryId(), writer.toString());
return (ResolverResponseMsg)message;
}catch(Exception e ){
e.printStackTrace();
throw new NoResponseException("Error processing query");
}
}// end of processQuery()
}// end of class PullHandler
class PushHandler implements QueryHandler{
protected String handlerName;
protected String credential;
protected SimpleDateFormat format = new SimpleDateFormat("MM, dd, yyyy hh:mm:ss.S");
public PushHandler(String handlerName, String credential){
this.handlerName = handlerName;
this.credential = credential;
}// end of constructor CalendarHandler()
/**
* call back method, when messages are received by the ResolverService
* it calls back this method to deal with received responses
* @param response ResolverQueryMsg reponse
*
* @version $Revision: 1.1 $
* @since JXTA 1.0
*/
public void processResponse(ResolverResponseMsg response) {
System.out.println("Received a ToDo response");
//String textDoc = response.getResponse();
//System.out.println(textDoc);
System.out.println(((ResolverResponse)response).toString());
}// End of processResponse()
/**
* Process the resolver query, and generate response
* @return GenericResolverMsg Response to the query
* @param query ResolverQueryMsg query
*
* @exception NoResponseException is thrown when the resolver service
* does not have an response and is not interested by the response.
* @exception ResendQueryException is thrown when the resolver service
* does not have a response, but is interested by the response. In that
* case, the resolver service is responsible for forward the response
* to the original peer that has issued the query.
* @exception DiscardQueryException is thrown when the resolver service
* has decided that the query should simply be ignored.
* @exception IOException is thrown when the service resolver was not able to
* process the query
*
* @version $Revision: 1.1 $
* @since JXTA 1.0
*/
public ResolverResponseMsg processQuery(ResolverQueryMsg query) throws NoResponseException, ResendQueryException, DiscardQueryException{
System.out.println("Received a query");
System.out.println(((ResolverQuery)query).toString());
//net.jxta.document.StructuredTextDocument doc = null;
String xml = query.getQuery();
// Process the incomming data
merge(new XCal(xml));
throw new NoResponseException("Got the data we were interested in.");
/*
try{
doc = (StructuredTextDocument)StructuredDocumentFactory.newStructuredDocument(new MimeMediaType( "text/xml" ),
new ByteArrayInputStream(xml.getBytes()) );
}catch(java.io.IOException ioe){
ioe.printStackTrace();
}
// Let the originator know we received the message.
net.jxta.document.Element e = null;
long now = System.currentTimeMillis();
e = doc.createElement("message consumed:",format.format( new Date(now)));
doc.appendChild(e);
// Return a generic response;
ResolverResponseMsg message = null;
xml = serializeDoc(doc);
message = new ResolverResponse(handlerName, credential,query.getQueryId(), xml);
return (ResolverResponseMsg)message;
*/
}// end of processQuery()
}// end of class CalendarHandler
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -