gatewayprivatedata.java.svn-base
来自「开源项目openfire的完整源程序」· SVN-BASE 代码 · 共 119 行
SVN-BASE
119 行
/** * $Revision$ * $Date$ * * Copyright (C) 1999-2005 Jive Software. All rights reserved. * This software is the proprietary information of Jive Software. Use is subject to license terms. */package org.jivesoftware.sparkimpl.plugin.gateways;import org.jivesoftware.smackx.packet.PrivateData;import org.jivesoftware.smackx.provider.PrivateDataProvider;import org.xmlpull.v1.XmlPullParser;import java.util.HashMap;import java.util.Map;/** * Handle Gateway preferences through private data to persist through seperate locations of the client. * * @author Derek DeMoro */public class GatewayPrivateData implements PrivateData { private final Map<String, String> loginSettingsMap = new HashMap<String, String>(); public static final String ELEMENT = "gateway-settings"; public static final String NAMESPACE = "http://www.jivesoftware.org/spark"; public void addService(String serviceName, boolean autoLogin) { loginSettingsMap.put(serviceName, Boolean.toString(autoLogin)); } public boolean autoLogin(String serviceName) { String str = loginSettingsMap.get(serviceName); if(str == null){ return true; } return Boolean.parseBoolean(str); } public String getElementName() { return ELEMENT; } public String getNamespace() { return NAMESPACE; } public String toXML() { StringBuffer buf = new StringBuffer(); buf.append("<").append(getElementName()).append(" xmlns=\"").append(getNamespace()).append("\">"); buf.append("<gateways>"); for (String serviceName : loginSettingsMap.keySet()) { buf.append("<gateway>"); String autoLogin = loginSettingsMap.get(serviceName); buf.append("<serviceName>").append(serviceName).append("</serviceName>"); buf.append("<autoLogin>").append(autoLogin).append("</autoLogin>"); buf.append("</gateway>"); } buf.append("</gateways>"); buf.append("</").append(getElementName()).append(">"); return buf.toString(); } public static class ConferencePrivateDataProvider implements PrivateDataProvider { public ConferencePrivateDataProvider() { } public PrivateData parsePrivateData(XmlPullParser parser) throws Exception { GatewayPrivateData data = new GatewayPrivateData(); boolean done = false; boolean isInstalled = false; while (!done) { int eventType = parser.next(); if (eventType == XmlPullParser.START_TAG && parser.getName().equals("gateways")) { isInstalled = true; } if (eventType == XmlPullParser.START_TAG && parser.getName().equals("gateway")) { boolean gatewayDone = false; String serviceName = null; String autoLogin = null; while (!gatewayDone) { int eType = parser.next(); if (eType == XmlPullParser.START_TAG && parser.getName().equals("serviceName")) { serviceName = parser.nextText(); } else if (eType == XmlPullParser.START_TAG && parser.getName().equals("autoLogin")) { autoLogin = parser.nextText(); } else if (eType == XmlPullParser.END_TAG && parser.getName().equals("gateway")) { data.addService(serviceName, Boolean.parseBoolean(autoLogin)); gatewayDone = true; } } } else if (eventType == XmlPullParser.END_TAG && parser.getName().equals("gateways")) { done = true; } else if (!isInstalled) { done = true; } } return data; } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?