1 19 package org.openharmonise.vfs.metadata; 20 21 import java.util.ArrayList ; 22 import java.util.Iterator ; 23 import java.util.List ; 24 25 import org.openharmonise.vfs.metadata.range.*; 26 import org.w3c.dom.Element ; 27 import org.w3c.dom.Node ; 28 import org.w3c.dom.NodeList ; 29 import org.w3c.dom.Text ; 30 31 32 41 public class Property { 42 43 46 private ArrayList m_aDomains = new ArrayList (3); 47 48 51 private Range m_range = null; 52 53 56 private String m_sNamespace = null; 57 58 61 private String m_sName = null; 62 63 66 private String m_sDisplayName = null; 67 68 71 private String m_sVersion = null; 72 73 76 private String m_sHREF = null; 77 78 81 private String m_sSummary = ""; 82 83 public Property() { 84 super(); 85 } 86 87 94 public Property(String sNamespace, String sName, String sPath) { 95 super(); 96 this.m_sNamespace = sNamespace; 97 this.m_sName = sName; 98 this.m_sDisplayName = sName; 99 this.m_sHREF = sPath; 100 } 101 102 107 public void setName(String sName) { 108 this.m_sName = sName; 109 } 110 111 116 public void setSummary(String sSummary) { 117 this.m_sSummary = sSummary; 118 } 119 120 125 public String getSummary() { 126 return this.m_sSummary; 127 } 128 129 134 public void setNamespace(String sNamespace) { 135 this.m_sNamespace = sNamespace; 136 } 137 138 143 public void setDisplayName(String sDisplayName) { 144 this.m_sDisplayName = sDisplayName; 145 } 146 147 152 public String getDisplayName() { 153 return this.m_sDisplayName; 154 } 155 156 161 public void setVersion(String sVersion) { 162 this.m_sVersion = sVersion; 163 } 164 165 170 public String getVersion() { 171 return this.m_sVersion; 172 } 173 174 179 public String getNamespace() { 180 return this.m_sNamespace; 181 } 182 183 188 public String getName() { 189 return this.m_sName; 190 } 191 192 197 public String getHREF() { 198 return this.m_sHREF; 199 } 200 201 206 public void setHREF(String sHREF) { 207 this.m_sHREF = sHREF; 208 } 209 210 215 public void addDomain(Domain domain) { 216 this.m_aDomains.add(domain); 217 } 218 219 224 public List getDomains() { 225 return (List )this.m_aDomains.clone(); 226 } 227 228 233 public void setRange(Range range) { 234 this.m_range = range; 235 } 236 237 242 public Range getRange() { 243 if(this.m_range==null) { 244 return new StringRange(); 245 } 246 return this.m_range; 247 } 248 249 254 public void instantiate(Element elProperty) { 255 NodeList nl = elProperty.getElementsByTagNameNS("http://www.simulacramedia.com/harmoniseclient/propdefs", "displayname"); 256 for(int i=0; i<nl.getLength(); i++) { 257 Element elPath = (Element )nl.item(i); 258 if(elPath.getChildNodes().getLength()==1) { 259 Node node = elPath.getFirstChild(); 260 if(node.getNodeType()==Node.TEXT_NODE) { 261 this.m_sDisplayName = ((Text )node).getNodeValue(); 262 } 263 break; 264 } 265 } 266 267 nl = elProperty.getElementsByTagNameNS("http://www.simulacramedia.com/harmoniseclient/propdefs", "version"); 268 for(int i=0; i<nl.getLength(); i++) { 269 Element elVersion = (Element )nl.item(i); 270 if(elVersion.getChildNodes().getLength()==1) { 271 Node node = elVersion.getFirstChild(); 272 if(node.getNodeType()==Node.TEXT_NODE) { 273 this.m_sVersion = ((Text )node).getNodeValue(); 274 } 275 break; 276 } 277 } 278 279 nl = elProperty.getElementsByTagNameNS("DAV:", "href"); 280 for(int i=0; i<nl.getLength(); i++) { 281 Element elPath = (Element )nl.item(i); 282 if(elPath.getChildNodes().getLength()==1) { 283 Node node = elPath.getFirstChild(); 284 if(node.getNodeType()==Node.TEXT_NODE) { 285 this.m_sHREF = ((Text )node).getNodeValue(); 286 } 287 break; 288 } 289 } 290 291 nl = elProperty.getElementsByTagNameNS("DAV:", "range"); 292 for(int i=0; i<nl.getLength(); i++) { 293 Element elRange = (Element )nl.item(i); 294 if(elRange!=null) { 295 this.m_range = RangeFactory.getRange(elRange); 296 } 297 298 } 299 300 nl = elProperty.getElementsByTagNameNS("http://www.simulacramedia.com/harmoniseclient/propdefs", "domains"); 301 for(int i=0; i<nl.getLength(); i++) { 302 Element elDomains = (Element )nl.item(i); 303 if(elDomains.getChildNodes().getLength()>0) { 304 NodeList domains = elDomains.getChildNodes(); 305 for(int j=0; j<domains.getLength(); j++) { 306 if(domains.item(j).getNodeType()==Node.ELEMENT_NODE) { 307 Domain domain = new Domain(); 308 domain.instantiate( ((Element )domains.item(j)) ); 309 this.m_aDomains.add(domain); 310 } 311 } 312 } 313 } 314 } 315 316 public String toString() { 317 StringBuffer sBuff = new StringBuffer (); 318 319 sBuff.append("-----------------------------\n"); 320 321 sBuff.append("Property [") 322 .append(this.m_sNamespace).append("#").append(this.m_sName).append("]\n") 323 .append("DisplayName: ").append(this.m_sDisplayName).append("\n") 324 .append("Version: ").append(this.m_sVersion).append("\n") 325 .append("Path: ").append(this.m_sHREF).append("\n") 326 .append(this.m_range).append("\n"); 327 328 Iterator itor = this.m_aDomains.iterator(); 329 while(itor.hasNext()) { 330 sBuff.append( ((Domain)itor.next()) ).append("\n"); 331 } 332 333 sBuff.append("-----------------------------\n"); 334 335 return sBuff.toString(); 336 } 337 } 338 | Popular Tags |