1 28 29 package com.opencms.template.cache; 30 31 import java.util.Enumeration ; 32 import java.util.Hashtable ; 33 34 45 public class CmsElementDefinition implements Cloneable { 46 47 50 private String m_name; 51 52 55 private String m_className; 56 57 60 private String m_templateName; 61 62 65 private String m_templateSelector; 66 67 70 private Hashtable m_elements; 71 72 79 public CmsElementDefinition(String name, String className, 80 String templateName) { 81 m_name = name; 82 m_className = className; 83 m_templateName = templateName; 84 } 85 86 93 public CmsElementDefinition(String name, String className, 94 String templateName, String templateSelector) { 95 this(name, className, templateName); 96 m_templateSelector = templateSelector; 97 } 98 99 107 public CmsElementDefinition(String name, String className, 108 String templateName, String templateSelector, Hashtable elements) { 109 this(name, className, templateName, templateSelector); 110 m_elements = elements; 111 } 112 113 118 public CmsElementDefinition(CmsElementDefinition primary, CmsElementDefinition secondary) { 119 120 m_elements = new Hashtable (); 121 122 if(primary != null) { 123 m_name = primary.m_name; 124 m_className = primary.m_className; 125 m_templateName = primary.m_templateName; 126 m_templateSelector = primary.m_templateSelector; 127 } 128 129 if(secondary != null) { 130 if(m_name == null) { 131 m_name = secondary.m_name; 132 } 133 134 if(m_className == null) { 135 m_className = secondary.m_className; 136 } 137 138 if(m_templateName == null) { 139 m_templateName = secondary.m_templateName; 140 } 141 142 if(m_templateSelector == null) { 143 m_templateSelector = secondary.m_templateSelector; 144 } 145 146 m_elements.putAll(secondary.m_elements); 147 } 148 149 if(primary != null) { 151 m_elements.putAll(primary.m_elements); 152 } 153 } 154 155 160 public CmsElementDescriptor getDescriptor() { 161 return new CmsElementDescriptor(m_className, m_templateName); 162 } 163 164 168 public String getName() { 169 return m_name; 170 } 171 172 176 public String getTemplateSelector() { 177 return m_templateSelector; 178 } 179 180 184 public String getClassName() { 185 return m_className; 186 } 187 188 192 public String getTemplateName() { 193 return m_templateName; 194 } 195 196 202 public void joinParameters(Hashtable parameter){ 203 Enumeration enu = m_elements.keys(); 204 while(enu.hasMoreElements()){ 205 String key = (String )enu.nextElement(); 206 String value = (String )m_elements.get(key); 207 key = m_name + "." + key; 208 parameter.put(key, value); 209 } 210 } 211 212 216 public String toString() { 217 StringBuffer result = new StringBuffer (); 218 219 result.append("DEF: " + m_name + " "); 220 221 String part1 = m_className==null?"":m_className.substring(m_className.lastIndexOf(".") + 1); 222 String part2 = m_templateName==null?"":m_templateName.substring(m_templateName.lastIndexOf("/") + 1); 223 String part3 = m_templateSelector==null?"":m_templateSelector.substring(m_templateSelector.lastIndexOf("/") + 1); 224 225 result.append(part1 + "/" + part2 + "/" + part3 + " ("); 226 227 if(m_elements != null) { 228 Enumeration params = m_elements.keys(); 229 while(params.hasMoreElements()) { 230 String name = (String )params.nextElement(); 231 String value = (String )m_elements.get(name); 232 result.append(name + "=" + value); 233 if(params.hasMoreElements()) result.append(", "); 234 } 235 result.append(")"); 236 } 237 return result.toString(); 238 } 239 }
| Popular Tags
|