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 ValueRange extends AbstractRange implements Range { 41 42 45 private ArrayList m_aValueGroups = new ArrayList (); 46 47 50 public ValueRange() { 51 super(); 52 } 53 54 57 public ValidationResult validate(ValueInstance value) { 58 boolean bIsValid = false; 59 60 String sValue = ((ValueValue)value).getValue(); 61 62 Iterator iter = m_aValueGroups.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 public List getValueGroups() { 75 ArrayList aVals = new ArrayList (); 76 Iterator itor = this.m_aValueGroups.iterator(); 77 while(itor.hasNext()) { 78 String sHREF = (String ) itor.next(); 79 ValueGroup val = ValueCache.getInstance().getValueGroup(sHREF); 80 aVals.add(val); 81 } 82 83 return aVals; 84 } 85 86 public List getHREFs() { 87 return this.m_aValueGroups; 88 } 89 90 public void setHREFs(List aHREFs) { 91 this.m_aValueGroups = new ArrayList (aHREFs); 92 } 93 94 public void setValueGroups(List aValueGroups) { 95 this.m_aValueGroups = new ArrayList (aValueGroups); 96 } 97 98 101 public void instantiate(Element elRange) { 102 NodeList nl = elRange.getElementsByTagNameNS("DAV:", "href"); 103 for(int i=0; i<nl.getLength(); i++) { 104 Element elHREF = (Element )nl.item(i); 105 if(elHREF.getParentNode().getLocalName().equalsIgnoreCase("property")) { 106 if(elHREF.getChildNodes().getLength()==1) { 107 Node node = elHREF.getFirstChild(); 108 if(node.getNodeType()==Node.TEXT_NODE) { 109 } 111 } 112 } 113 } 114 115 116 nl = elRange.getElementsByTagNameNS("http://www.simulacramedia.com/harmoniseclient/propdefs", "valuegroups"); 117 for(int i=0; i<nl.getLength(); i++) { 118 Element elValue = (Element )nl.item(i); 119 NodeList nl2 = elValue.getElementsByTagNameNS("DAV:", "href"); 120 for(int j=0; j<nl2.getLength(); j++) { 121 Element elHREF = (Element )nl2.item(j); 122 if(elHREF.getChildNodes().getLength()==1) { 123 Node node = elHREF.getFirstChild(); 124 if(node.getNodeType()==Node.TEXT_NODE) { 125 String sHREF = ((Text )node).getNodeValue(); 126 this.m_aValueGroups.add(sHREF); 127 } 128 } 129 } 130 } 131 } 132 133 public String toString() { 134 StringBuffer sBuff = new StringBuffer (); 135 136 sBuff.append("ValueRange:\n"); 137 138 sBuff.append("Values:\n"); 139 Iterator itor = this.m_aValueGroups.iterator(); 140 while(itor.hasNext()) { 141 ValueGroup val = ValueCache.getInstance().getValueGroup((String )itor.next()); 142 sBuff.append(val).append("\n"); 143 } 144 145 return sBuff.toString(); 146 } 147 148 } 149 | Popular Tags |