📄 xcookiedefaultserializer.java
字号:
/****************************************************************
* XBrowser - eXtended web Browser *
* *
* Copyright (c) 2000-2001 Armond Avanes *
* Refer to ReadMe & License files for more information *
* *
* *
* By: Armond Avanes *
* Armond555@yahoo.com & Armond333@yahoo.com *
* http://xbrowser.sourceforge.net/ *
*****************************************************************/
package xbrowser.cookie.io;
import java.io.*;
import java.net.*;
import java.util.*;
import java.text.*;
import xbrowser.*;
import xbrowser.util.*;
import xbrowser.cookie.*;
import org.w3c.dom.*;
public class XCookieDefaultSerializer implements XCookieSerializer
{
public XCookieDefaultSerializer()
{
}
public void importCookie(String file_name, XCookieManager cookie_manager) throws Exception
{
URL dtd_url = XRepository.getResourceManager().getResourceURL(DTD_URL);
Document doc = XMLManager.readFileDocument(file_name, DTD_SYMBOL, dtd_url);
Node node = XMLManager.findNode(doc,"xcookies").getNextSibling().getFirstChild();
while( node!=null )
{
if( node instanceof Element )
{
if( node.getNodeName().equals("xcookie") )
loadCookie(node, cookie_manager);
}
node = node.getNextSibling();
}
}
private void loadCookie(Node node, XCookieManager cookie_manager) throws DOMException
{
XCookie cookie = new XCookie();
cookie.setSecure( XMLManager.getNodeAttribute(node,"secure").equals("true") );
node = node.getFirstChild();
while( node!=null )
{
if( node instanceof Element )
{
if( node.getNodeName().equals("name") )
cookie.setName( XMLManager.getNodeValue(node) );
else if( node.getNodeName().equals("value") )
cookie.setValue( XMLManager.getNodeValue(node) );
else if( node.getNodeName().equals("path") )
cookie.setPath( XMLManager.getNodeValue(node) );
else if( node.getNodeName().equals("domain") )
cookie.setDomain( XMLManager.getNodeValue(node) );
else if( node.getNodeName().equals("comment") )
cookie.setComment( XMLManager.getNodeValue(node) );
else if( node.getNodeName().equals("version") )
cookie.setVersion( buildDouble(node) );
else if( node.getNodeName().equals("maxage") )
cookie.setMaxAge( buildLong(node) );
}
node = node.getNextSibling();
}
cookie_manager.addCookie(cookie);
}
private long buildLong(Node node) throws DOMException
{
long i = 0;
try
{
i = Long.parseLong( XMLManager.getNodeValue(node) );
}
catch( Exception e )
{
}
return i;
}
private double buildDouble(Node node) throws DOMException
{
double d = 0;
try
{
d = new Double(XMLManager.getNodeValue(node)).doubleValue();
}
catch( Exception e )
{
}
return d;
}
public void exportCookie(String file_name, XCookieManager cookie_manager) throws Exception
{
Document doc = XMLManager.newDocument();
Element root = (Element)doc.createElement("xcookies");
doc.appendChild(root);
//// Saving Cookies
Iterator it = cookie_manager.getCookies();
while( it.hasNext() )
saveCookie( (XCookie)it.next(), doc, root);
//// Cookies Saved
root.normalize();
XMLManager.writeDocument(file_name, doc, null, DTD_SYMBOL, null);
}
private void saveCookie(XCookie cookie, Document doc, Element parent_node)
{
Element node = (Element)doc.createElement("xcookie");
node.setAttribute("secure", ""+cookie.isSecure() );
XMLManager.addDataNodeTo(doc, node, "name", cookie.getName());
XMLManager.addDataNodeTo(doc, node, "value", cookie.getValue());
XMLManager.addDataNodeTo(doc, node, "path", cookie.getPath());
XMLManager.addDataNodeTo(doc, node, "domain", cookie.getDomain());
XMLManager.addDataNodeTo(doc, node, "comment", cookie.getComment());
XMLManager.addDataNodeTo(doc, node, "version", ""+cookie.getVersion());
XMLManager.addDataNodeTo(doc, node, "maxage", ""+cookie.getMaxAge());
parent_node.appendChild(node);
}
// Attributes:
private final String DTD_SYMBOL = "xbrowser:default:cookie";
private final String DTD_URL = XProjectConstants.DTD_DIR+"XCookie.dtd";
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -