1 19 package org.openharmonise.vfs.metadata.range; 20 21 import java.util.ArrayList ; 22 import java.util.Iterator ; 23 import java.util.List ; 24 25 import org.openharmonise.vfs.metadata.*; 26 import org.openharmonise.vfs.metadata.value.*; 27 import org.w3c.dom.Element ; 28 import org.w3c.dom.Node ; 29 import org.w3c.dom.NodeList ; 30 import org.w3c.dom.Text ; 31 32 33 40 public class CollectionRange extends AbstractRange implements Range { 41 42 45 private ArrayList m_aHREFs = new ArrayList (3); 46 47 50 public CollectionRange() { 51 super(); 52 } 53 54 57 public ValidationResult validate(ValueInstance value) { 58 boolean bIsValid = false; 59 60 String sValue = ((ResourceValue)value).getValue(); 61 62 Iterator iter = m_aHREFs.iterator(); 63 64 while (iter.hasNext() && bIsValid == false) { 65 String sPath = (String ) iter.next(); 66 if(sValue.startsWith(sPath)) { 67 bIsValid = true; 68 } 69 } 70 71 return new ValidationResult(bIsValid,""); 72 } 73 74 77 public void instantiate(Element elRange) { 78 NodeList nl = elRange.getElementsByTagNameNS("DAV:", "href"); 79 for(int i=0; i<nl.getLength(); i++) { 80 Element elHREF = (Element )nl.item(i); 81 if(elHREF.getChildNodes().getLength()==1) { 82 Node node = elHREF.getFirstChild(); 83 if(node.getNodeType()==Node.TEXT_NODE) { 84 this.m_aHREFs.add( ((Text )node).getNodeValue() ); 85 } 86 } 87 } 88 } 89 90 95 public List getHREFs() { 96 return (List ) this.m_aHREFs.clone(); 97 } 98 99 104 public void setHREFs(List aHREFs) { 105 this.m_aHREFs = new ArrayList (aHREFs); 106 } 107 108 public String toString() { 109 StringBuffer sBuff = new StringBuffer (); 110 111 sBuff.append("CollectionRange:\n"); 112 Iterator itor = this.m_aHREFs.iterator(); 113 while(itor.hasNext()) { 114 sBuff.append("HREF: ").append(((String )itor.next())).append("\n"); 115 } 116 117 return sBuff.toString(); 118 } 119 120 } 121 | Popular Tags |