1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 /* 19 * $Id: NSInfo.java 468655 2006-10-28 07:12:06Z minchau $ 20 */ 21 package org.apache.xml.utils; 22 23 /** 24 * This class holds information about the namespace info 25 * of a node. It is used to optimize namespace lookup in 26 * a generic DOM. 27 * @xsl.usage internal 28 */ 29 public class NSInfo 30 { 31 32 /** 33 * Constructor NSInfo 34 * 35 * 36 * @param hasProcessedNS Flag indicating whether namespaces 37 * have been processed for this node 38 * @param hasXMLNSAttrs Flag indicating whether this node 39 * has XMLNS attributes. 40 */ 41 public NSInfo(boolean hasProcessedNS, boolean hasXMLNSAttrs) 42 { 43 44 m_hasProcessedNS = hasProcessedNS; 45 m_hasXMLNSAttrs = hasXMLNSAttrs; 46 m_namespace = null; 47 m_ancestorHasXMLNSAttrs = ANCESTORXMLNSUNPROCESSED; 48 } 49 50 // Unused at the moment 51 52 /** 53 * Constructor NSInfo 54 * 55 * 56 * @param hasProcessedNS Flag indicating whether namespaces 57 * have been processed for this node 58 * @param hasXMLNSAttrs Flag indicating whether this node 59 * has XMLNS attributes. 60 * @param ancestorHasXMLNSAttrs Flag indicating whether one of this node's 61 * ancestor has XMLNS attributes. 62 */ 63 public NSInfo(boolean hasProcessedNS, boolean hasXMLNSAttrs, 64 int ancestorHasXMLNSAttrs) 65 { 66 67 m_hasProcessedNS = hasProcessedNS; 68 m_hasXMLNSAttrs = hasXMLNSAttrs; 69 m_ancestorHasXMLNSAttrs = ancestorHasXMLNSAttrs; 70 m_namespace = null; 71 } 72 73 /** 74 * Constructor NSInfo 75 * 76 * 77 * @param namespace The namespace URI 78 * @param hasXMLNSAttrs Flag indicating whether this node 79 * has XMLNS attributes. 80 */ 81 public NSInfo(String namespace, boolean hasXMLNSAttrs) 82 { 83 84 m_hasProcessedNS = true; 85 m_hasXMLNSAttrs = hasXMLNSAttrs; 86 m_namespace = namespace; 87 m_ancestorHasXMLNSAttrs = ANCESTORXMLNSUNPROCESSED; 88 } 89 90 /** The namespace URI */ 91 public String m_namespace; 92 93 /** Flag indicating whether this node has an XMLNS attribute */ 94 public boolean m_hasXMLNSAttrs; 95 96 /** Flag indicating whether namespaces have been processed for this node */ 97 public boolean m_hasProcessedNS; 98 99 /** Flag indicating whether one of this node's ancestor has an XMLNS attribute */ 100 public int m_ancestorHasXMLNSAttrs; 101 102 /** Constant for ancestors XMLNS atributes not processed */ 103 public static final int ANCESTORXMLNSUNPROCESSED = 0; 104 105 /** Constant indicating an ancestor has an XMLNS attribute */ 106 public static final int ANCESTORHASXMLNS = 1; 107 108 /** Constant indicating ancestors don't have an XMLNS attribute */ 109 public static final int ANCESTORNOXMLNS = 2; 110 } 111