1 /* 2 * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. 3 * 4 * This software is open source. 5 * See the bottom of this file for the licence. 6 */ 7 8 package org.dom4j.tree; 9 10 import org.dom4j.Namespace; 11 import org.dom4j.QName; 12 13 /*** 14 * <p> 15 * <code>FlyweightAttribute</code> is a Flyweight pattern implementation of a 16 * singly linked, read-only XML Attribute. 17 * </p> 18 * 19 * <p> 20 * This node could be shared across documents and elements though it does not 21 * support the parent relationship. 22 * </p> 23 * 24 * @author <a href="mailto:jstrachan@apache.org">James Strachan </a> 25 * @version $Revision: 1.7 $ 26 */ 27 public class FlyweightAttribute extends AbstractAttribute { 28 /*** The <code>QName</code> for this element */ 29 private QName qname; 30 31 /*** The value of the <code>Attribute</code> */ 32 protected String value; 33 34 public FlyweightAttribute(QName qname) { 35 this.qname = qname; 36 } 37 38 public FlyweightAttribute(QName qname, String value) { 39 this.qname = qname; 40 this.value = value; 41 } 42 43 /*** 44 * Creates the <code>Attribute</code> with the specified local name and 45 * value. 46 * 47 * @param name 48 * is the name of the attribute 49 * @param value 50 * is the value of the attribute 51 */ 52 public FlyweightAttribute(String name, String value) { 53 this.qname = getDocumentFactory().createQName(name); 54 this.value = value; 55 } 56 57 /*** 58 * Creates the <code>Attribute</code> with the specified local name, value 59 * and <code>Namespace</code>. 60 * 61 * @param name 62 * is the name of the attribute 63 * @param value 64 * is the value of the attribute 65 * @param namespace 66 * is the namespace of the attribute 67 */ 68 public FlyweightAttribute(String name, String value, Namespace namespace) { 69 this.qname = getDocumentFactory().createQName(name, namespace); 70 this.value = value; 71 } 72 73 public String getValue() { 74 return value; 75 } 76 77 public QName getQName() { 78 return qname; 79 } 80 } 81 82 /* 83 * Redistribution and use of this software and associated documentation 84 * ("Software"), with or without modification, are permitted provided that the 85 * following conditions are met: 86 * 87 * 1. Redistributions of source code must retain copyright statements and 88 * notices. Redistributions must also contain a copy of this document. 89 * 90 * 2. Redistributions in binary form must reproduce the above copyright notice, 91 * this list of conditions and the following disclaimer in the documentation 92 * and/or other materials provided with the distribution. 93 * 94 * 3. The name "DOM4J" must not be used to endorse or promote products derived 95 * from this Software without prior written permission of MetaStuff, Ltd. For 96 * written permission, please contact dom4j-info@metastuff.com. 97 * 98 * 4. Products derived from this Software may not be called "DOM4J" nor may 99 * "DOM4J" appear in their names without prior written permission of MetaStuff, 100 * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd. 101 * 102 * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org 103 * 104 * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND 105 * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 106 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 107 * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE 108 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 109 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 110 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 111 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 112 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 113 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 114 * POSSIBILITY OF SUCH DAMAGE. 115 * 116 * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved. 117 */