1 20 21 package org.jivesoftware.smackx.packet; 22 23 import java.util.Map ; 24 import java.util.Iterator ; 25 import java.util.Collections ; 26 import java.util.HashMap ; 27 28 50 public class DefaultPrivateData implements PrivateData { 51 52 private String elementName; 53 private String namespace; 54 private Map map; 55 56 62 public DefaultPrivateData(String elementName, String namespace) { 63 this.elementName = elementName; 64 this.namespace = namespace; 65 } 66 67 72 public String getElementName() { 73 return elementName; 74 } 75 76 81 public String getNamespace() { 82 return namespace; 83 } 84 85 public String toXML() { 86 StringBuffer buf = new StringBuffer (); 87 buf.append("<").append(elementName).append(" xmlns=\"").append(namespace).append("\">"); 88 for (Iterator i=getNames(); i.hasNext(); ) { 89 String name = (String )i.next(); 90 String value = getValue(name); 91 buf.append("<").append(name).append(">"); 92 buf.append(value); 93 buf.append("</").append(name).append(">"); 94 } 95 buf.append("</").append(elementName).append(">"); 96 return buf.toString(); 97 } 98 99 105 public synchronized Iterator getNames() { 106 if (map == null) { 107 return Collections.EMPTY_LIST.iterator(); 108 } 109 return Collections.unmodifiableMap(new HashMap (map)).keySet().iterator(); 110 } 111 112 118 public synchronized String getValue(String name) { 119 if (map == null) { 120 return null; 121 } 122 return (String )map.get(name); 123 } 124 125 131 public synchronized void setValue(String name, String value) { 132 if (map == null) { 133 map = new HashMap (); 134 } 135 map.put(name, value); 136 } 137 } | Popular Tags |