Author: dkulp
Date: Fri Feb 18 17:11:15 2011
New Revision: 1072067

URL: http://svn.apache.org/viewvc?rev=1072067&view=rev
Log:
Write out the saved attributes

Modified:
    
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
    
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java

Modified: 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java?rev=1072067&r1=1072066&r2=1072067&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
 (original)
+++ 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PolicyContainingPrimitiveAssertion.java
 Fri Feb 18 17:11:15 2011
@@ -132,6 +132,7 @@ public class PolicyContainingPrimitiveAs
         if (ignorable) {
             writer.writeAttribute(namespace, Constants.ATTR_IGNORABLE, "true");
         }
+        writeAttributes(writer);
         nested.serialize(writer);
         writer.writeEndElement();
     }

Modified: 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java?rev=1072067&r1=1072066&r2=1072067&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
 (original)
+++ 
webservices/commons/trunk/modules/neethi/src/main/java/org/apache/neethi/builders/PrimitiveAssertion.java
 Fri Feb 18 17:11:15 2011
@@ -164,8 +164,42 @@ public class PrimitiveAssertion implemen
         if (ignorable) {
             writer.writeAttribute(namespace, Constants.ATTR_IGNORABLE, "true");
         }
+        writeAttributes(writer);
         writer.writeEndElement();
     }
+    protected void writeAttributes(XMLStreamWriter writer) throws 
XMLStreamException {
+        if (attributes != null) {
+            for (Map.Entry<QName, String> att : attributes.entrySet()) {
+                if (Constants.isIgnorableAttribute(att.getKey())) {
+                    //already handled
+                    continue;
+                }
+                if (Constants.isOptionalAttribute(att.getKey())) {
+                    //already handled
+                    continue;
+                }
+                String prefix = 
getOrCreatePrefix(att.getKey().getNamespaceURI(), writer);
+                writer.writeAttribute(prefix, att.getKey().getNamespaceURI(),
+                                      att.getKey().getLocalPart(),
+                                      att.getValue());
+            }
+        }
+    }
+    protected String getOrCreatePrefix(String ns, XMLStreamWriter writer) 
throws XMLStreamException {
+        String prefix = writer.getPrefix(ns);
+        int count = 1;
+        while (prefix == null || "".equals(prefix)) {
+            prefix = "ns" + count++;
+            String ns2 =  writer.getNamespaceContext().getNamespaceURI(prefix);
+            if (ns2 == null || "".equals(ns2)) {
+                //found one that will work
+                writer.writeNamespace(prefix, ns);
+            } else {
+                prefix = null;
+            }
+        }
+        return prefix;
+    }
     
     protected Assertion clone(boolean isoptional) {
         return new PrimitiveAssertion(name, isoptional, ignorable, attributes);


Reply via email to