src/share/classes/com/sun/org/apache/xml/internal/security/transforms/params/InclusiveNamespaces.java

Print this page

        

*** 1,53 **** /* * reserved comment block * DO NOT REMOVE OR ALTER! */ ! /* ! * Copyright 1999-2004 The Apache Software Foundation. ! * ! * Licensed under the Apache License, Version 2.0 (the "License"); ! * you may not use this file except in compliance with the License. ! * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * ! * Unless required by applicable law or agreed to in writing, software ! * distributed under the License is distributed on an "AS IS" BASIS, ! * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ! * See the License for the specific language governing permissions and ! * limitations under the License. ! * */ package com.sun.org.apache.xml.internal.security.transforms.params; - - - import java.util.Iterator; import java.util.Set; import java.util.SortedSet; - import java.util.StringTokenizer; import java.util.TreeSet; import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException; import com.sun.org.apache.xml.internal.security.transforms.TransformParam; import com.sun.org.apache.xml.internal.security.utils.ElementProxy; import org.w3c.dom.Document; import org.w3c.dom.Element; - /** * This Object serves as Content for the ds:Transforms for exclusive * Canonicalization. * <BR /> * It implements the {@link Element} interface * and can be used directly in a DOM tree. * * @author Christian Geuer-Pollmann */ ! public class InclusiveNamespaces extends ElementProxy ! implements TransformParam { /** Field _TAG_EC_INCLUSIVENAMESPACES */ public static final String _TAG_EC_INCLUSIVENAMESPACES = "InclusiveNamespaces"; --- 1,49 ---- /* * reserved comment block * DO NOT REMOVE OR ALTER! */ ! /** ! * Licensed to the Apache Software Foundation (ASF) under one ! * or more contributor license agreements. See the NOTICE file ! * distributed with this work for additional information ! * regarding copyright ownership. The ASF licenses this file ! * to you under the Apache License, Version 2.0 (the ! * "License"); you may not use this file except in compliance ! * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * ! * Unless required by applicable law or agreed to in writing, ! * software distributed under the License is distributed on an ! * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ! * KIND, either express or implied. See the License for the ! * specific language governing permissions and limitations ! * under the License. */ package com.sun.org.apache.xml.internal.security.transforms.params; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; import com.sun.org.apache.xml.internal.security.exceptions.XMLSecurityException; import com.sun.org.apache.xml.internal.security.transforms.TransformParam; import com.sun.org.apache.xml.internal.security.utils.ElementProxy; import org.w3c.dom.Document; import org.w3c.dom.Element; /** * This Object serves as Content for the ds:Transforms for exclusive * Canonicalization. * <BR /> * It implements the {@link Element} interface * and can be used directly in a DOM tree. * * @author Christian Geuer-Pollmann */ ! public class InclusiveNamespaces extends ElementProxy implements TransformParam { /** Field _TAG_EC_INCLUSIVENAMESPACES */ public static final String _TAG_EC_INCLUSIVENAMESPACES = "InclusiveNamespaces";
*** 73,111 **** * * @param doc * @param prefixes */ public InclusiveNamespaces(Document doc, Set<String> prefixes) { - super(doc); ! StringBuffer sb = new StringBuffer(); ! SortedSet<String> prefixList = new TreeSet<String>(prefixes); ! ! for (String prefix : prefixList) { if (prefix.equals("xmlns")) { sb.append("#default "); } else { sb.append(prefix + " "); } } ! this._constructionElement ! .setAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST, ! sb.toString().trim()); ! } ! ! /** ! * Method getInclusiveNamespaces ! * ! * @return The Inclusive Namespace string ! */ ! public String getInclusiveNamespaces() { ! return this._constructionElement ! .getAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST); } /** * Constructor InclusiveNamespaces * --- 69,98 ---- * * @param doc * @param prefixes */ public InclusiveNamespaces(Document doc, Set<String> prefixes) { super(doc); ! SortedSet<String> prefixList = null; ! if (prefixes instanceof SortedSet<?>) { ! prefixList = (SortedSet<String>)prefixes; ! } else { ! prefixList = new TreeSet<String>(prefixes); ! } + StringBuilder sb = new StringBuilder(); for (String prefix : prefixList) { if (prefix.equals("xmlns")) { sb.append("#default "); } else { sb.append(prefix + " "); } } ! this.constructionElement.setAttributeNS( ! null, InclusiveNamespaces._ATT_EC_PREFIXLIST, sb.toString().trim()); } /** * Constructor InclusiveNamespaces *
*** 117,126 **** --- 104,122 ---- throws XMLSecurityException { super(element, BaseURI); } /** + * Method getInclusiveNamespaces + * + * @return The Inclusive Namespace string + */ + public String getInclusiveNamespaces() { + return this.constructionElement.getAttributeNS(null, InclusiveNamespaces._ATT_EC_PREFIXLIST); + } + + /** * Decodes the <code>inclusiveNamespaces</code> String and returns all * selected namespace prefixes as a Set. The <code>#default</code> * namespace token is represented as an empty namespace prefix * (<code>"xmlns"</code>). * <BR/>
*** 134,160 **** * * @param inclusiveNamespaces * @return A set to string */ public static SortedSet<String> prefixStr2Set(String inclusiveNamespaces) { - SortedSet<String> prefixes = new TreeSet<String>(); ! if ((inclusiveNamespaces == null) ! || (inclusiveNamespaces.length() == 0)) { return prefixes; } ! StringTokenizer st = new StringTokenizer(inclusiveNamespaces, " \t\r\n"); ! ! while (st.hasMoreTokens()) { ! String prefix = st.nextToken(); ! if (prefix.equals("#default")) { ! prefixes.add("xmlns" ); } else { ! prefixes.add( prefix); } } return prefixes; } --- 130,151 ---- * * @param inclusiveNamespaces * @return A set to string */ public static SortedSet<String> prefixStr2Set(String inclusiveNamespaces) { SortedSet<String> prefixes = new TreeSet<String>(); ! if ((inclusiveNamespaces == null) || (inclusiveNamespaces.length() == 0)) { return prefixes; } ! String[] tokens = inclusiveNamespaces.split("\\s"); ! for (String prefix : tokens) { if (prefix.equals("#default")) { ! prefixes.add("xmlns"); } else { ! prefixes.add(prefix); } } return prefixes; }