1 20 21 package org.jivesoftware.smack.packet; 22 23 import java.util.*; 24 25 47 public class DefaultPacketExtension implements PacketExtension { 48 49 private String elementName; 50 private String namespace; 51 private Map map; 52 53 59 public DefaultPacketExtension(String elementName, String namespace) { 60 this.elementName = elementName; 61 this.namespace = namespace; 62 } 63 64 69 public String getElementName() { 70 return elementName; 71 } 72 73 78 public String getNamespace() { 79 return namespace; 80 } 81 82 public String toXML() { 83 StringBuffer buf = new StringBuffer (); 84 buf.append("<").append(elementName).append(" xmlns=\"").append(namespace).append("\">"); 85 for (Iterator i=getNames(); i.hasNext(); ) { 86 String name = (String )i.next(); 87 String value = getValue(name); 88 buf.append("<").append(name).append(">"); 89 buf.append(value); 90 buf.append("</").append(name).append(">"); 91 } 92 buf.append("</").append(elementName).append(">"); 93 return buf.toString(); 94 } 95 96 102 public synchronized Iterator getNames() { 103 if (map == null) { 104 return Collections.EMPTY_LIST.iterator(); 105 } 106 return Collections.unmodifiableMap(new HashMap(map)).keySet().iterator(); 107 } 108 109 115 public synchronized String getValue(String name) { 116 if (map == null) { 117 return null; 118 } 119 return (String )map.get(name); 120 } 121 122 128 public synchronized void setValue(String name, String value) { 129 if (map == null) { 130 map = new HashMap(); 131 } 132 map.put(name, value); 133 } 134 } | Popular Tags |