You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by aj...@apache.org on 2006/03/02 06:12:56 UTC

svn commit: r382301 - /webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java

Author: ajith
Date: Wed Mar  1 21:12:46 2006
New Revision: 382301

URL: http://svn.apache.org/viewcvs?rev=382301&view=rev
Log:
Made a slight imporvement to the DOM policy reader

Modified:
    webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java

Modified: webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java
URL: http://svn.apache.org/viewcvs/webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java?rev=382301&r1=382300&r2=382301&view=diff
==============================================================================
--- webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java (original)
+++ webservices/commons/modules/policy/src/org/apache/ws/policy/util/DOMPolicyReader.java Wed Mar  1 21:12:46 2006
@@ -49,167 +49,171 @@
  * @author Sanka Samaranayake (sanka@apache.org)
  */
 public class DOMPolicyReader implements PolicyReader {
-	DOMPolicyReader() {
-	}
+    public static final String XMLNS_NS_URI = "http://www.w3.org/2000/xmlns/";
 
-	public Policy readPolicy(InputStream in) {
+    DOMPolicyReader() {
+    }
+
+    public Policy readPolicy(InputStream in) {
         try {
-			DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+
+            dbf.setNamespaceAware(true);
+            dbf.setValidating(false);
+
+            DocumentBuilder db = dbf.newDocumentBuilder();
+            Document doc = db.parse(in);
+            Element element = doc.getDocumentElement();
+            return readPolicy(element);
+        } catch (ParserConfigurationException e) {
+            e.printStackTrace();
+            throw new RuntimeException("error : " + e.getMessage());
+        } catch (SAXException e) {
+            e.printStackTrace();
+            throw new RuntimeException("error : " + e.getMessage());
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw new RuntimeException("error : " + e.getMessage());
+        }
+    }
+
+    private Assertion readAssertion(Element element) {
+        String namespace = element.getNamespaceURI();
+        String localName = element.getLocalName();
+
+        if (!(namespace.equals(PolicyConstants.WS_POLICY_NAMESPACE_URI))) {
+            return readPrimitiveAssertion(element);
+        }
 
-			dbf.setNamespaceAware(true);
-			dbf.setValidating(false);
+        if (localName.equals(PolicyConstants.WS_POLICY)) {
+            return readPolicy(element);
 
-			DocumentBuilder db = dbf.newDocumentBuilder();
-			Document doc = db.parse(in);
-			Element element = doc.getDocumentElement();
-			return readPolicy(element);
-		} catch (ParserConfigurationException e) {
-			e.printStackTrace();
-			throw new RuntimeException("error : " + e.getMessage());
-		} catch (SAXException e) {
-			e.printStackTrace();
-			throw new RuntimeException("error : " + e.getMessage());
-		} catch (IOException e) {
-			e.printStackTrace();
-			throw new RuntimeException("error : " + e.getMessage());
-		}
-	}
-	
-	private Assertion readAssertion(Element element) {
-		String namespace = element.getNamespaceURI();
-		String localName = element.getLocalName();
-		
-		if (!(namespace.equals(PolicyConstants.WS_POLICY_NAMESPACE_URI))) {
-			return readPrimitiveAssertion(element);
-		}
-		
-		if (localName.equals(PolicyConstants.WS_POLICY)) {
-			return readPolicy(element);
-			
-		} else if (localName.equals(PolicyConstants.AND_COMPOSITE_ASSERTION)) {
-			return readAndComposite(element);
-			
-		} else if (localName.equals(PolicyConstants.XOR_COMPOSITE_ASSERTION)) {
-			return readXorComposite(element);
-			
-		} else if (localName.equals(PolicyConstants.WS_POLICY_REFERENCE)) {
-			return readPolicyReference(element);
-			
-		} else {
-			throw new RuntimeException("unknown element ..");
-		}		
-	}
-	
-	public Policy readPolicy(Element element) {
-		Policy policy = new Policy();
+        } else if (localName.equals(PolicyConstants.AND_COMPOSITE_ASSERTION)) {
+            return readAndComposite(element);
+
+        } else if (localName.equals(PolicyConstants.XOR_COMPOSITE_ASSERTION)) {
+            return readXorComposite(element);
+
+        } else if (localName.equals(PolicyConstants.WS_POLICY_REFERENCE)) {
+            return readPolicyReference(element);
+
+        } else {
+            throw new RuntimeException("unknown element ..");
+        }
+    }
+
+    public Policy readPolicy(Element element) {
+        Policy policy = new Policy();
         Attr attri;
         attri = element.getAttributeNodeNS(PolicyConstants.WSU_NAMESPACE_URI, "Id");
         if (attri != null) {
             policy.setId(attri.getValue());
         }
 
-    	attri = element.getAttributeNodeNS(PolicyConstants.XML_NAMESPACE_URI, "base");
+        attri = element.getAttributeNodeNS(PolicyConstants.XML_NAMESPACE_URI, "base");
         if (attri != null) {
             policy.setBase(attri.getValue());
         }
-		
-		policy.addTerms(readTerms(element));
-		return policy;
-	}
-	
-	private AndCompositeAssertion readAndComposite(Element element) {
-		AndCompositeAssertion andCompositeAssertion = new AndCompositeAssertion();
-		andCompositeAssertion.addTerms(readTerms(element));
-		return andCompositeAssertion;
-	}	
-	
-	private XorCompositeAssertion readXorComposite(Element element) {
-		XorCompositeAssertion xorCompositeAssertion = new XorCompositeAssertion();
-		xorCompositeAssertion.addTerms(readTerms(element));
-		return xorCompositeAssertion;
-	}
-	
-	public PolicyReference readPolicyReference(Element element) {
-		Attr attribute = element.getAttributeNode("URI");
-		return new PolicyReference(attribute.getValue());
-	}
-	
-	private PrimitiveAssertion readPrimitiveAssertion(Element element) {
-		QName qname = new QName(element.getNamespaceURI(), element.getLocalName(), element.getPrefix());
+
+        policy.addTerms(readTerms(element));
+        return policy;
+    }
+
+    private AndCompositeAssertion readAndComposite(Element element) {
+        AndCompositeAssertion andCompositeAssertion = new AndCompositeAssertion();
+        andCompositeAssertion.addTerms(readTerms(element));
+        return andCompositeAssertion;
+    }
+
+    private XorCompositeAssertion readXorComposite(Element element) {
+        XorCompositeAssertion xorCompositeAssertion = new XorCompositeAssertion();
+        xorCompositeAssertion.addTerms(readTerms(element));
+        return xorCompositeAssertion;
+    }
+
+    public PolicyReference readPolicyReference(Element element) {
+        Attr attribute = element.getAttributeNode("URI");
+        return new PolicyReference(attribute.getValue());
+    }
+
+    private PrimitiveAssertion readPrimitiveAssertion(Element element) {
+        QName qname = new QName(element.getNamespaceURI(), element.getLocalName(), element.getPrefix());
         PrimitiveAssertion result = new PrimitiveAssertion(qname);
-        
+
         result.setAttributes(getAttributes(element));
         String isOptional = result.getAttribute(new QName(
                 PolicyConstants.WS_POLICY_NAMESPACE_URI, "Optional"));
         result.setOptional(new Boolean(isOptional).booleanValue());
-                        
+
         //CHECK ME
-		NodeList list = element.getChildNodes();
-		int length = list.getLength();
+        NodeList list = element.getChildNodes();
+        int length = list.getLength();
 
-		for (int i = 0; i < length; i++) {
-			Node node = list.item(i);
-			short nodeType = node.getNodeType();
-			
-			if (nodeType == Node.ELEMENT_NODE) {
-				Element childElement = (Element) node;
-				if (childElement.getNamespaceURI().equals(
-						PolicyConstants.WS_POLICY_NAMESPACE_URI)
-						&& childElement.getLocalName().equals(
-								PolicyConstants.WS_POLICY)) {
-					Policy policy = readPolicy(childElement);
-					result.addTerm(policy);
-
-				} else {
-					PrimitiveAssertion pa = readPrimitiveAssertion(childElement);
-					result.addTerm(pa);
-				}
-			}
-			else if (nodeType == Node.TEXT_NODE) {
-				String strValue = node.getNodeValue();
-		        
-		        if (strValue != null && strValue.length() != 0) {
-		        	result.setStrValue(strValue);            
-		        }
-			}
-        }        
-        return result;       
-    }
-	
-	private ArrayList readTerms(Element element) {
-		ArrayList terms = new ArrayList();
-		NodeList list = element.getChildNodes();
-		int length = list.getLength();
-
-		for (int i = 0; i < length; i++) {
-			Object obj = list.item(i);
-			
-			if (obj instanceof Element) {
-				Element e = (Element) obj;
-				terms.add(readAssertion(e));				
-			}
-		}
-		return terms;		
-	}
-	
-	private Hashtable getAttributes(Element element) {
-		Hashtable attributes = new Hashtable();
-		NamedNodeMap map = element.getAttributes();
-
-		int length = map.getLength();
-
-		for (int i = 0; i < length; i++) {
-			Attr attribute = (Attr) map.item(i);
-			String prefix = attribute.getPrefix();
-			QName qn = null;
-			if (prefix != null) {
-				qn = new QName(attribute.getNamespaceURI(), attribute.getLocalName(), prefix);
-			}
-			else {
-				qn = new QName(attribute.getNamespaceURI(), attribute.getLocalName());				
-			}
-			attributes.put(qn, attribute.getValue());
-		}
-		return attributes;
-	}
+        for (int i = 0; i < length; i++) {
+            Node node = list.item(i);
+            short nodeType = node.getNodeType();
+
+            if (nodeType == Node.ELEMENT_NODE) {
+                Element childElement = (Element) node;
+                if (childElement.getNamespaceURI().equals(
+                        PolicyConstants.WS_POLICY_NAMESPACE_URI)
+                        && childElement.getLocalName().equals(
+                        PolicyConstants.WS_POLICY)) {
+                    Policy policy = readPolicy(childElement);
+                    result.addTerm(policy);
+
+                } else {
+                    PrimitiveAssertion pa = readPrimitiveAssertion(childElement);
+                    result.addTerm(pa);
+                }
+            }
+            else if (nodeType == Node.TEXT_NODE) {
+                String strValue = node.getNodeValue();
+
+                if (strValue != null && strValue.length() != 0) {
+                    result.setStrValue(strValue);
+                }
+            }
+        }
+        return result;
+    }
+
+    private ArrayList readTerms(Element element) {
+        ArrayList terms = new ArrayList();
+        NodeList list = element.getChildNodes();
+        int length = list.getLength();
+
+        for (int i = 0; i < length; i++) {
+            Object obj = list.item(i);
+
+            if (obj instanceof Element) {
+                Element e = (Element) obj;
+                terms.add(readAssertion(e));
+            }
+        }
+        return terms;
+    }
+
+    private Hashtable getAttributes(Element element) {
+        Hashtable attributes = new Hashtable();
+        NamedNodeMap map = element.getAttributes();
+
+        int length = map.getLength();
+
+        for (int i = 0; i < length; i++) {
+            Attr attribute = (Attr) map.item(i);
+            if (!XMLNS_NS_URI.equals(attribute.getNamespaceURI())){
+                String prefix = attribute.getPrefix();
+                QName qn = null;
+                if (prefix != null) {
+                    qn = new QName(attribute.getNamespaceURI(), attribute.getLocalName(), prefix);
+                }else {
+                    qn = new QName(attribute.getNamespaceURI(), attribute.getLocalName());
+                }
+                attributes.put(qn, attribute.getValue());
+            }
+
+        }
+        return attributes;
+    }
 }