Modified: webservices/commons/modules/policy/src/org/apache/ws/policy/util/StAXPolicyWriter.java URL: http://svn.apache.org/viewcvs/webservices/commons/modules/policy/src/org/apache/ws/policy/util/StAXPolicyWriter.java?rev=382719&r1=382718&r2=382719&view=diff ============================================================================== --- webservices/commons/modules/policy/src/org/apache/ws/policy/util/StAXPolicyWriter.java (original) +++ webservices/commons/modules/policy/src/org/apache/ws/policy/util/StAXPolicyWriter.java Fri Mar 3 00:26:45 2006 @@ -35,230 +35,233 @@ import org.apache.ws.policy.XorCompositeAssertion; /** + * StAXPolicyWriter implements PolicyWriter and provides different methods to + * create a Policy object. It uses StAX as its underlying mechanism to create + * XML elements. + * * @author Sanka Samaranayake ([EMAIL PROTECTED]) */ public class StAXPolicyWriter implements PolicyWriter { - private int num = 1; + private int num = 1; - StAXPolicyWriter() { - } + StAXPolicyWriter() { + } - public void writePolicy(Policy policy, OutputStream output) { - XMLStreamWriter writer = null; - try { - writer = XMLOutputFactory.newInstance().createXMLStreamWriter( - output); - writePolicy(policy, writer); - - writer.flush(); - - } catch (XMLStreamException ex) { - throw new RuntimeException(ex); - } - } - - public void writePolicy(Policy policy, XMLStreamWriter writer) - throws XMLStreamException { - String writerPerfix = writer - .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); - - if (writerPerfix != null) { - writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, - PolicyConstants.WS_POLICY); - - } else { - writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - - } - - if (policy.getId() != null) { - - - writer.writeNamespace(PolicyConstants.WSU_NAMESPACE_PREFIX, - PolicyConstants.WSU_NAMESPACE_URI); - writer.setPrefix(PolicyConstants.WSU_NAMESPACE_PREFIX, - PolicyConstants.WSU_NAMESPACE_URI); - - writer.writeAttribute("wsu", PolicyConstants.WSU_NAMESPACE_URI, - "Id", policy.getId()); - } - - Iterator iterator = policy.getTerms().iterator(); - while (iterator.hasNext()) { - Assertion term = (Assertion) iterator.next(); - writeAssertion(term, writer); - } - - writer.writeEndElement(); - } - - private void writeAssertion(Assertion assertion, XMLStreamWriter writer) - throws XMLStreamException { - if (assertion instanceof PrimitiveAssertion) { - writePrimitiveAssertion((PrimitiveAssertion) assertion, writer); - - } else if (assertion instanceof XorCompositeAssertion) { - writeXorCompositeAssertion((XorCompositeAssertion) assertion, - writer); - - } else if (assertion instanceof PolicyReference) { - writePolicyReference((PolicyReference) assertion, writer); - - } else if (assertion instanceof Policy) { - writePolicy((Policy) assertion, writer); - } else if (assertion instanceof AndCompositeAssertion) { - writeAndCompositeAssertion((AndCompositeAssertion) assertion, - writer); - - } else { - throw new RuntimeException("unknown element type"); - } - } - - private void writeAndCompositeAssertion(AndCompositeAssertion assertion, - XMLStreamWriter writer) throws XMLStreamException { - - String writerPrefix = writer - .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); - - if (writerPrefix == null) { - writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.AND_COMPOSITE_ASSERTION, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - - } else { - writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, - PolicyConstants.AND_COMPOSITE_ASSERTION); - } - - List terms = assertion.getTerms(); - writeTerms(terms, writer); - - writer.writeEndElement(); - } - - private void writeXorCompositeAssertion(XorCompositeAssertion assertion, - XMLStreamWriter writer) throws XMLStreamException { - String writerPrefix = writer - .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); - - if (writerPrefix == null) { - writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.XOR_COMPOSITE_ASSERTION, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - - } else { - writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, - PolicyConstants.XOR_COMPOSITE_ASSERTION); - } - - List terms = assertion.getTerms(); - writeTerms(terms, writer); - - writer.writeEndElement(); - } - - private void writePrimitiveAssertion(PrimitiveAssertion assertion, - XMLStreamWriter writer) throws XMLStreamException { - QName qname = assertion.getName(); - - String writerPrefix = writer.getPrefix(qname.getNamespaceURI()); - if (writerPrefix != null) { - writer.writeStartElement(qname.getNamespaceURI(), qname - .getLocalPart()); - } else { - String prefix = (qname.getPrefix() != null) ? qname.getPrefix() - : generateNamespace(); - writer.writeStartElement(prefix, qname.getLocalPart(), qname - .getNamespaceURI()); - writer.writeNamespace(prefix, qname.getNamespaceURI()); - writer.setPrefix(prefix, qname.getNamespaceURI()); - - } - - Hashtable attributes = assertion.getAttributes(); - writeAttributes(attributes, writer); - - String text = (String) assertion.getStrValue(); - if (text != null) { - writer.writeCharacters(text); - } - - List terms = assertion.getTerms(); - writeTerms(terms, writer); - - writer.writeEndElement(); - } - - public void writePolicyReference(PolicyReference assertion, - XMLStreamWriter writer) throws XMLStreamException { - - String writerPrefix = writer - .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); - if (writerPrefix != null) { - writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, - PolicyConstants.WS_POLICY_REFERENCE); - } else { - - writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_REFERENCE, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, - PolicyConstants.WS_POLICY_NAMESPACE_URI); - - } - writer.writeAttribute("URI", assertion.getPolicyURIString()); - - writer.writeEndElement(); - } - - private void writeTerms(List terms, XMLStreamWriter writer) - throws XMLStreamException { - - Iterator iterator = terms.iterator(); - while (iterator.hasNext()) { - Assertion assertion = (Assertion) iterator.next(); - writeAssertion(assertion, writer); - } - } - - private void writeAttributes(Hashtable attributes, XMLStreamWriter writer) - throws XMLStreamException { - - Iterator iterator = attributes.keySet().iterator(); - while (iterator.hasNext()) { - QName qname = (QName) iterator.next(); - String value = (String) attributes.get(qname); - - String prefix = qname.getPrefix(); - if (prefix != null) { - writer.writeAttribute(prefix, qname.getNamespaceURI(), qname - .getLocalPart(), value); - } else { - writer.writeAttribute(qname.getNamespaceURI(), qname - .getLocalPart(), value); - } - } - } - - private String generateNamespace() { - return "ns" + num++; - } -} + public void writePolicy(Policy policy, OutputStream output) { + XMLStreamWriter writer = null; + try { + writer = XMLOutputFactory.newInstance().createXMLStreamWriter( + output); + writePolicy(policy, writer); + + writer.flush(); + + } catch (XMLStreamException ex) { + throw new RuntimeException(ex); + } + } + + public void writePolicy(Policy policy, XMLStreamWriter writer) + throws XMLStreamException { + String writerPerfix = writer + .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); + + if (writerPerfix != null) { + writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, + PolicyConstants.WS_POLICY); + + } else { + writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + + } + + if (policy.getId() != null) { + + writer.writeNamespace(PolicyConstants.WSU_NAMESPACE_PREFIX, + PolicyConstants.WSU_NAMESPACE_URI); + writer.setPrefix(PolicyConstants.WSU_NAMESPACE_PREFIX, + PolicyConstants.WSU_NAMESPACE_URI); + + writer.writeAttribute("wsu", PolicyConstants.WSU_NAMESPACE_URI, + "Id", policy.getId()); + } + + Iterator iterator = policy.getTerms().iterator(); + while (iterator.hasNext()) { + Assertion term = (Assertion) iterator.next(); + writeAssertion(term, writer); + } + + writer.writeEndElement(); + } + + private void writeAssertion(Assertion assertion, XMLStreamWriter writer) + throws XMLStreamException { + if (assertion instanceof PrimitiveAssertion) { + writePrimitiveAssertion((PrimitiveAssertion) assertion, writer); + + } else if (assertion instanceof XorCompositeAssertion) { + writeXorCompositeAssertion((XorCompositeAssertion) assertion, + writer); + + } else if (assertion instanceof PolicyReference) { + writePolicyReference((PolicyReference) assertion, writer); + + } else if (assertion instanceof Policy) { + writePolicy((Policy) assertion, writer); + } else if (assertion instanceof AndCompositeAssertion) { + writeAndCompositeAssertion((AndCompositeAssertion) assertion, + writer); + + } else { + throw new RuntimeException("unknown element type"); + } + } + + private void writeAndCompositeAssertion(AndCompositeAssertion assertion, + XMLStreamWriter writer) throws XMLStreamException { + + String writerPrefix = writer + .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); + + if (writerPrefix == null) { + writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.AND_COMPOSITE_ASSERTION, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + + } else { + writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, + PolicyConstants.AND_COMPOSITE_ASSERTION); + } + + List terms = assertion.getTerms(); + writeTerms(terms, writer); + + writer.writeEndElement(); + } + + private void writeXorCompositeAssertion(XorCompositeAssertion assertion, + XMLStreamWriter writer) throws XMLStreamException { + String writerPrefix = writer + .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); + + if (writerPrefix == null) { + writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.XOR_COMPOSITE_ASSERTION, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + + } else { + writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, + PolicyConstants.XOR_COMPOSITE_ASSERTION); + } + + List terms = assertion.getTerms(); + writeTerms(terms, writer); + + writer.writeEndElement(); + } + + private void writePrimitiveAssertion(PrimitiveAssertion assertion, + XMLStreamWriter writer) throws XMLStreamException { + QName qname = assertion.getName(); + + String writerPrefix = writer.getPrefix(qname.getNamespaceURI()); + if (writerPrefix != null) { + writer.writeStartElement(qname.getNamespaceURI(), qname + .getLocalPart()); + } else { + String prefix = (qname.getPrefix() != null) ? qname.getPrefix() + : generateNamespace(); + writer.writeStartElement(prefix, qname.getLocalPart(), qname + .getNamespaceURI()); + writer.writeNamespace(prefix, qname.getNamespaceURI()); + writer.setPrefix(prefix, qname.getNamespaceURI()); + + } + + Hashtable attributes = assertion.getAttributes(); + writeAttributes(attributes, writer); + + String text = (String) assertion.getStrValue(); + if (text != null) { + writer.writeCharacters(text); + } + + List terms = assertion.getTerms(); + writeTerms(terms, writer); + + writer.writeEndElement(); + } + + public void writePolicyReference(PolicyReference assertion, + XMLStreamWriter writer) throws XMLStreamException { + + String writerPrefix = writer + .getPrefix(PolicyConstants.WS_POLICY_NAMESPACE_URI); + if (writerPrefix != null) { + writer.writeStartElement(PolicyConstants.WS_POLICY_NAMESPACE_URI, + PolicyConstants.WS_POLICY_REFERENCE); + } else { + + writer.writeStartElement(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_REFERENCE, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.writeNamespace(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + writer.setPrefix(PolicyConstants.WS_POLICY_PREFIX, + PolicyConstants.WS_POLICY_NAMESPACE_URI); + + } + writer.writeAttribute("URI", assertion.getPolicyURIString()); + + writer.writeEndElement(); + } + + private void writeTerms(List terms, XMLStreamWriter writer) + throws XMLStreamException { + + Iterator iterator = terms.iterator(); + while (iterator.hasNext()) { + Assertion assertion = (Assertion) iterator.next(); + writeAssertion(assertion, writer); + } + } + + private void writeAttributes(Hashtable attributes, XMLStreamWriter writer) + throws XMLStreamException { + + Iterator iterator = attributes.keySet().iterator(); + while (iterator.hasNext()) { + QName qname = (QName) iterator.next(); + String value = (String) attributes.get(qname); + + String prefix = qname.getPrefix(); + if (prefix != null) { + writer.writeAttribute(prefix, qname.getNamespaceURI(), qname + .getLocalPart(), value); + } else { + writer.writeAttribute(qname.getNamespaceURI(), qname + .getLocalPart(), value); + } + } + } + + private String generateNamespace() { + return "ns" + num++; + } +} \ No newline at end of file
Modified: webservices/commons/modules/policy/src/org/apache/ws/policy/util/StringUtils.java URL: http://svn.apache.org/viewcvs/webservices/commons/modules/policy/src/org/apache/ws/policy/util/StringUtils.java?rev=382719&r1=382718&r2=382719&view=diff ============================================================================== --- webservices/commons/modules/policy/src/org/apache/ws/policy/util/StringUtils.java (original) +++ webservices/commons/modules/policy/src/org/apache/ws/policy/util/StringUtils.java Fri Mar 3 00:26:45 2006 @@ -17,20 +17,20 @@ package org.apache.ws.policy.util; /** - * StringUtils provides few utility functions for other classes in the + * StringUtils provides few utility functions for other classes in the * framework. */ public class StringUtils { - public static String getChars(int noOfChars, char theChar) { - if (noOfChars <= 0) { - return ""; - } - StringBuffer buf = new StringBuffer(); - for (int i = 0; i < noOfChars; i++) { - buf.append(theChar); - } - return buf.toString(); - } + public static String getChars(int noOfChars, char theChar) { + if (noOfChars <= 0) { + return ""; + } + StringBuffer buf = new StringBuffer(); + for (int i = 0; i < noOfChars; i++) { + buf.append(theChar); + } + return buf.toString(); + } -} +} \ No newline at end of file
