1 /* 2 * Copyright 2001-2004 (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 * $Id: BeanAttribute.java,v 1.5 2004/06/25 08:03:33 maartenc Exp $ 8 */ 9 10 package org.dom4j.bean; 11 12 import org.dom4j.Element; 13 import org.dom4j.QName; 14 import org.dom4j.tree.AbstractAttribute; 15 16 /*** <p><code>BeanAttribute</code> represents a mutable XML attribute which 17 * is backed by a property of the JavaBean of its parent element.</p> 18 * 19 * @author <a href="mailto:james.strachan@metastuff.com">James Strachan</a> 20 * @version $Revision: 1.5 $ 21 */ 22 public class BeanAttribute extends AbstractAttribute { 23 24 /*** The list of Bean attributes */ 25 private final BeanAttributeList beanList; 26 27 /*** The index in the Bean attribute list */ 28 private final int index; 29 30 31 public BeanAttribute(BeanAttributeList beanList, int index) { 32 this.beanList = beanList; 33 this.index = index; 34 } 35 36 public QName getQName() { 37 return beanList.getQName(index); 38 } 39 40 public Element getParent() { 41 return beanList.getParent(); 42 } 43 44 public String getValue() { 45 Object data = getData(); 46 return ( data != null ) ? data.toString() : null; 47 } 48 49 public void setValue(String data) { 50 beanList.setData(index, data); 51 } 52 53 public Object getData() { 54 return beanList.getData(index); 55 } 56 57 public void setData(Object data) { 58 beanList.setData(index, data); 59 } 60 61 } 62 63 64 65 66 /* 67 * Redistribution and use of this software and associated documentation 68 * ("Software"), with or without modification, are permitted provided 69 * that the following conditions are met: 70 * 71 * 1. Redistributions of source code must retain copyright 72 * statements and notices. Redistributions must also contain a 73 * copy of this document. 74 * 75 * 2. Redistributions in binary form must reproduce the 76 * above copyright notice, this list of conditions and the 77 * following disclaimer in the documentation and/or other 78 * materials provided with the distribution. 79 * 80 * 3. The name "DOM4J" must not be used to endorse or promote 81 * products derived from this Software without prior written 82 * permission of MetaStuff, Ltd. For written permission, 83 * please contact dom4j-info@metastuff.com. 84 * 85 * 4. Products derived from this Software may not be called "DOM4J" 86 * nor may "DOM4J" appear in their names without prior written 87 * permission of MetaStuff, Ltd. DOM4J is a registered 88 * trademark of MetaStuff, Ltd. 89 * 90 * 5. Due credit should be given to the DOM4J Project - 91 * http://www.dom4j.org 92 * 93 * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS 94 * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT 95 * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 96 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 97 * METASTUFF, LTD. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 98 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 99 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 100 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 101 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 102 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 103 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 104 * OF THE POSSIBILITY OF SUCH DAMAGE. 105 * 106 * Copyright 2001-2004 (C) MetaStuff, Ltd. All Rights Reserved. 107 * 108 * $Id: BeanAttribute.java,v 1.5 2004/06/25 08:03:33 maartenc Exp $ 109 */