PtsCodes.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:15k
- /*
- * Copyright (C) 2007-2008 Esmertec AG.
- * Copyright (C) 2007-2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.android.im.imps;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Map.Entry;
- public class PtsCodes {
- private PtsCodes() {
- }
- private static HashMap<String, String> sCodeToTransaction = new HashMap<String, String>();
- private static HashMap<String, String> sCodeToElement = new HashMap<String, String>();
- private static HashMap<String, String> sCodeToCapElement = new HashMap<String, String>();
- private static HashMap<String, String> sCodeToCapValue= new HashMap<String, String>();
- private static HashMap<String, String> sCodeToServiceTree = new HashMap<String, String>();
- private static HashMap<String, String> sCodeToPresenceAttribute = new HashMap<String, String>();
- private static HashMap<String, String> sTransactionToCode = new HashMap<String, String>();
- private static HashMap<String, String> sElementToCode = new HashMap<String, String>();
- /*package*/ static HashMap<String, String> sCapElementToCode = new HashMap<String, String>();
- /*package*/ static HashMap<String, String> sCapValueToCode= new HashMap<String, String>();
- private static HashMap<String, String> sServiceTreeToCode = new HashMap<String, String>();
- static HashMap<String, String> sContactListPropsToCode = new HashMap<String, String>();
- private static HashMap<String, String> sPresenceAttributeToCode = new HashMap<String, String>();
- private static ArrayList<String> sServerRequestTransactionCode = new ArrayList<String>();
- private static HashMap<String, String> sCodeToPAValue = new HashMap<String, String>();
- private static HashMap<String, String> sPAValueToCode = new HashMap<String, String>();
- public static String getTransaction(String type) {
- // not case sensitive
- return sCodeToTransaction.get(type.toUpperCase());
- }
- public static String getElement(String type) {
- // not case sensitive
- return sCodeToElement.get(type.toUpperCase());
- }
- public static String getCapElement(String type) {
- // not case sensitive
- return sCodeToCapElement.get(type.toUpperCase());
- }
- public static String getCapValue(String type) {
- // not case sensitive
- return sCodeToCapValue.get(type.toUpperCase()) == null ?
- type : sCodeToCapValue.get(type.toUpperCase());
- }
- public static String getServiceTreeValue(String type) {
- // not case sensitive
- return sCodeToServiceTree.get(type.toUpperCase());
- }
- public static String getTxCode(String txType) {
- return sTransactionToCode.get(txType);
- }
- public static String getElementCode(String elemType, String transactionType) {
- if (ImpsTags.PresenceSubList.equals(elemType)) {
- return ImpsTags.UpdatePresence_Request.equals(transactionType) ? "UV" : "PS";
- }
- return sElementToCode.get(elemType);
- }
- public static String getCapElementCode(String elemType) {
- return sCapElementToCode.get(elemType);
- }
- public static String getCapValueCode(String value) {
- return sCapValueToCode.get(value);
- }
- public static String getServiceTreeCode(String elemType) {
- return sServiceTreeToCode.get(elemType);
- }
- public static String getPresenceAttributeCode(String elemType){
- return sPresenceAttributeToCode.get(elemType);
- }
- public static String getPresenceAttributeElement(String code) {
- // not case sensitive
- return sCodeToPresenceAttribute.get(code.toUpperCase());
- }
- public static String getPAValue(String code) {
- // not case sensitive
- String value = sCodeToPAValue.get(code.toUpperCase());
- return value == null ? code : value;
- }
- public static String getPAValueCode(String value) {
- // not case sensitive
- String code = sPAValueToCode.get(value.toUpperCase());
- return code == null ? value : code;
- }
- public static boolean isServerRequestCode(String type) {
- for (String code : sServerRequestTransactionCode) {
- if (code.equals(type)) {
- return true;
- }
- }
- return false;
- }
- // Fundamental primitives and transactions
- public static final String ClientCapability_Response = "PC";
- public static final String Disconnect = "DI";
- // public static final String GetList_Request = "GL";
- public static final String GetList_Response = "LG";
- // public static final String KeepAlive_Request = "KA";
- public static final String KeepAlive_Response = "AK";
- public static final String Login_Response = "RL";
- // public static final String Logout_Request = "OR";
- // public static final String Polling_Request = "PO";
- // public static final String Service_Request = "SQ";
- public static final String Service_Response = "QS";
- public static final String Status = "ST"; // the same for the element "Status"
- public static final String ListManage_Response = "ML";
- public static final String PresenceNotification = "PN";
- public static final String GetPresence_Response = "PG";
- // public static final String Disconnect = "Disconnect";
- // public static final String KeepAlive_Request = "KeepAlive-Request";
- // public static final String KeepAlive_Response = "KeepAlive-Response";
- // public static final String Service_Request = "Service-Request";
- // public static final String Service_Response = "Service-Response";
- // Information elements
- public static final String AllFunctions = "AF";
- public static final String CapabilityList = "CA";
- public static final String AgreedCapabilityList = "AP";
- public static final String CapabilityRequest = "CR";
- public static final String ClientID = "CI";
- public static final String ContactList = "CL";
- public static final String DefaultContactList = "DC";
- public static final String DigestSchema = "DI";
- public static final String Nonce = "NO";
- public static final String NotAvailableFunctions = "NF";
- public static final String KeepAliveTime = "KA";
- public static final String SessionID = "SI";
- public static final String DefaultList = "DL";
- public static final String UserNickList = "UN";
- public static final String ContactListProps = "CP";
- public static final String Presence = "PR";
- // Contact list properties
- public static final String DisplayName = "DN";
- public static final String Default = "DE";
- static {
- sTransactionToCode.put(ImpsTags.Login_Request, "LR");
- sTransactionToCode.put(ImpsTags.ClientCapability_Request, "CP");
- sTransactionToCode.put(ImpsTags.Service_Request, "SQ");
- sTransactionToCode.put(ImpsTags.Logout_Request, "OR");
- sTransactionToCode.put(ImpsTags.Status, "ST");
- sTransactionToCode.put(ImpsTags.GetList_Request, "GL");
- sTransactionToCode.put(ImpsTags.CreateList_Request, "CL");
- sTransactionToCode.put(ImpsTags.DeleteList_Request, "DL");
- sTransactionToCode.put(ImpsTags.ListManage_Request, "LM");
- sTransactionToCode.put(ImpsTags.GetPresence_Request, "GP");
- sTransactionToCode.put(ImpsTags.SubscribePresence_Request, "SB");
- sTransactionToCode.put(ImpsTags.GetBlockedList_Request, "GB");
- sTransactionToCode.put(ImpsTags.CreateAttributeList_Request, "CA");
- sTransactionToCode.put(ImpsTags.Polling_Request, "PO");
- sTransactionToCode.put(ImpsTags.UpdatePresence_Request, "UP");
- sElementToCode.put(ImpsTags.ClientID, ClientID);
- sElementToCode.put(ImpsTags.Password, "PW");
- sElementToCode.put(ImpsTags.SessionCookie, "SC");
- sElementToCode.put(ImpsTags.TimeToLive, "TL");
- sElementToCode.put(ImpsTags.UserID, "UI");
- sElementToCode.put(ImpsTags.CapabilityList, CapabilityList);
- sElementToCode.put(ImpsTags.Functions, "RF");
- sElementToCode.put(ImpsTags.AllFunctionsRequest, "AR");
- sElementToCode.put(ImpsTags.Result, "ST");
- sElementToCode.put(ImpsTags.ContactList, "CL");
- sElementToCode.put(ImpsTags.NickList, "UN");
- sElementToCode.put(ImpsTags.AddNickList, "AN");
- sElementToCode.put(ImpsTags.RemoveNickList, "RN");
- sElementToCode.put(ImpsTags.ContactListProperties, "CP");
- sElementToCode.put(ImpsTags.ReceiveList, "RL");
- sElementToCode.put(ImpsTags.PresenceSubList, "PS");
- sElementToCode.put(ImpsTags.DefaultList, DefaultList);
- sElementToCode.put(ImpsTags.AutoSubscribe, "AS");
- sCodeToTransaction.put(ClientCapability_Response, ImpsTags.ClientCapability_Response);
- sCodeToTransaction.put(Disconnect, ImpsTags.Disconnect);
- sCodeToTransaction.put(GetList_Response, ImpsTags.GetList_Response);
- sCodeToTransaction.put(KeepAlive_Response, ImpsTags.KeepAlive_Response);
- sCodeToTransaction.put(Login_Response, ImpsTags.Login_Response);
- sCodeToTransaction.put(Service_Response, ImpsTags.Service_Response);
- sCodeToTransaction.put(Status, ImpsTags.Status);
- sCodeToTransaction.put(ListManage_Response, ImpsTags.ListManage_Response);
- sCodeToTransaction.put(PresenceNotification, ImpsTags.PresenceNotification_Request);
- sCodeToTransaction.put(GetPresence_Response, ImpsTags.GetPresence_Response);
- sCodeToElement.put(AllFunctions, ImpsTags.AllFunctions);
- sCodeToElement.put(CapabilityList, ImpsTags.CapabilityList);
- sCodeToElement.put(CapabilityRequest, ImpsTags.CapabilityRequest);
- sCodeToElement.put(ClientID, ImpsTags.ClientID);
- sCodeToElement.put(ContactList, ImpsTags.ContactList);
- sCodeToElement.put(DigestSchema, ImpsTags.DigestSchema);
- sCodeToElement.put(Nonce, ImpsTags.Nonce);
- sCodeToElement.put(NotAvailableFunctions, ImpsTags.NotAvailableFunctions);
- sCodeToElement.put(KeepAliveTime, ImpsTags.KeepAliveTime);
- sCodeToElement.put(SessionID, ImpsTags.SessionID);
- sCodeToElement.put(Status, ImpsTags.Status);
- sCodeToElement.put(DefaultList, ImpsTags.DefaultContactList);
- sCodeToElement.put(UserNickList, ImpsTags.NickList);
- sCodeToElement.put(Presence, ImpsTags.Presence);
- // Capability element <=> code
- sCodeToCapElement.put("CT", ImpsTags.ClientType);
- sCodeToCapElement.put("CI", ImpsTags.CIRHTTPAddress);
- sCodeToCapElement.put("DL", ImpsTags.DefaultLanguage);
- sCodeToCapElement.put("ID", ImpsTags.InitialDeliveryMethod);
- sCodeToCapElement.put("MT", ImpsTags.MultiTrans);
- sCodeToCapElement.put("PS", ImpsTags.ParserSize);
- sCodeToCapElement.put("PM", ImpsTags.ServerPollMin);
- sCodeToCapElement.put("SB", ImpsTags.SupportedBearer);
- sCodeToCapElement.put("SC", ImpsTags.SupportedCIRMethod);
- sCodeToCapElement.put("TA", ImpsTags.TCPAddress);
- sCodeToCapElement.put("TP", ImpsTags.TCPPort);
- sCodeToCapElement.put("UP", ImpsTags.UDPPort);
- for (Entry<String, String> e : sCodeToCapElement.entrySet()) {
- sCapElementToCode.put(e.getValue(), e.getKey());
- }
- // Capability value <=> code
- sCodeToCapValue.put("SS", "SSMS");
- sCodeToCapValue.put("ST", "STCP");
- sCodeToCapValue.put("SU", "SUDP");
- sCodeToCapValue.put("WS", "WAPSMS");
- sCodeToCapValue.put("WU", "WAPUDP");
- // value of ClientType
- sCodeToCapValue.put("MP", ImpsConstants.PRESENCE_MOBILE_PHONE);
- sCodeToCapValue.put("CO", ImpsConstants.PRESENCE_COMPUTER);
- sCodeToCapValue.put("PD", ImpsConstants.PRESENCE_PDA);
- sCodeToCapValue.put("CL", ImpsConstants.PRESENCE_CLI);
- sCodeToCapValue.put("OT", ImpsConstants.PRESENCE_OTHER);
- for (Entry<String, String> e : sCodeToCapValue.entrySet()) {
- sCapValueToCode.put(e.getValue(), e.getKey());
- }
- // Service Tree <=> code
- sCodeToServiceTree.put("WV", ImpsTags.WVCSPFeat);
- sCodeToServiceTree.put("FF", ImpsTags.FundamentalFeat);
- sCodeToServiceTree.put("PF", ImpsTags.PresenceFeat);
- sCodeToServiceTree.put("IF", ImpsTags.IMFeat);
- sCodeToServiceTree.put("GE", ImpsTags.GroupFeat);
- for (Entry<String, String> e : sCodeToServiceTree.entrySet()) {
- sServiceTreeToCode.put(e.getValue(), e.getKey());
- }
- sContactListPropsToCode.put(ImpsConstants.DisplayName, "DN");
- sContactListPropsToCode.put(ImpsConstants.Default, "DE");
- // Presence Attribute <=> code. Only include the attributes our client supports
- sCodeToPresenceAttribute.put("OS", ImpsTags.OnlineStatus);
- sCodeToPresenceAttribute.put("CF", ImpsTags.ClientInfo);
- sCodeToPresenceAttribute.put("UA", ImpsTags.UserAvailability);
- sCodeToPresenceAttribute.put("ST", ImpsTags.StatusText);
- sCodeToPresenceAttribute.put("SC", ImpsTags.StatusContent);
- // sub-element of ClientInfo
- sCodeToPresenceAttribute.put("CT", ImpsTags.ClientType);
- sCodeToPresenceAttribute.put("CP", ImpsTags.ClientProducer);
- sCodeToPresenceAttribute.put("CV", ImpsTags.ClientVersion);
- // sub-element of StatusContent
- sCodeToPresenceAttribute.put("RC", ImpsTags.ReferredContent);
- sCodeToPresenceAttribute.put("CY", ImpsTags.ContentType);
- for (Entry<String, String> e : sCodeToPresenceAttribute.entrySet()) {
- sPresenceAttributeToCode.put(e.getValue(), e.getKey());
- }
- sServerRequestTransactionCode.add(PresenceNotification);
- // value of UserAvailability
- sCodeToPAValue.put("AV", ImpsConstants.PRESENCE_AVAILABLE);
- sCodeToPAValue.put("DI", ImpsConstants.PRESENCE_DISCREET);
- sCodeToPAValue.put("NA", ImpsConstants.PRESENCE_NOT_AVAILABLE);
- // value of ClientType
- sCodeToPAValue.put("MP", ImpsConstants.PRESENCE_MOBILE_PHONE);
- sCodeToPAValue.put("CO", ImpsConstants.PRESENCE_COMPUTER);
- sCodeToPAValue.put("PD", ImpsConstants.PRESENCE_PDA);
- sCodeToPAValue.put("CL", ImpsConstants.PRESENCE_CLI);
- sCodeToPAValue.put("OT", ImpsConstants.PRESENCE_OTHER);
- for (Entry<String, String> e : sCodeToPAValue.entrySet()) {
- sPAValueToCode.put(e.getValue(), e.getKey());
- }
- }
- }