1 /** 2 * Redistribution and use of this software and associated documentation ("Software"), with or 3 * without modification, are permitted provided that the following conditions are met: 4 * 5 * 1. Redistributions of source code must retain copyright statements and notices. Redistributions 6 * must also contain a copy of this document. 7 * 8 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of 9 * conditions and the following disclaimer in the documentation and/or other materials provided with 10 * the distribution. 11 * 12 * 3. The name "Exolab" must not be used to endorse or promote products derived from this Software 13 * without prior written permission of Intalio, Inc. For written permission, please contact 14 * info@exolab.org. 15 * 16 * 4. Products derived from this Software may not be called "Exolab" nor may "Exolab" appear in 17 * their names without prior written permission of Intalio, Inc. Exolab is a registered trademark of 18 * Intalio, Inc. 19 * 20 * 5. Due credit should be given to the Exolab Project (http://www.exolab.org/). 21 * 22 * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR 23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND 24 * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTALIO, INC. OR ITS 25 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY 29 * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 * 31 * Copyright 2000 (C) Intalio, Inc. All Rights Reserved. 32 * 33 * $Id$ 34 */ 35 36 37 package org.exolab.castor.xml.schema; 38 39 import java.util.Enumeration; 40 41 import org.exolab.castor.xml.ValidationException; 42 43 /** 44 * An XML Schema Attribute Group Definition 45 * 46 * @author <a href="mailto:kvisco@intalio.com">Keith Visco</a> 47 * @version $Revision$ $Date: 2006-04-14 04:14:43 -0600 (Fri, 14 Apr 2006) $ 48 **/ 49 public abstract class AttributeGroup extends Annotated { 50 51 /** 52 * The id of this AttributeGroup 53 **/ 54 private String _id = null; 55 56 /** 57 * Returns the anyAttribute set in this attribute group if any. 58 * 59 * @return the anyAttribute set in this attribute group if any. 60 */ 61 public abstract Wildcard getAnyAttribute(); 62 63 /** 64 * Returns the AttributeDecl associated with the given name 65 * 66 * @return the AttributeDecl associated with the given name, or null if no AttributeDecl with the 67 * given name was found. 68 **/ 69 public abstract AttributeDecl getAttribute(String name); 70 71 /** 72 * Returns an Enumeration of all the attributes of this attribute group. The enumeration includes 73 * attributes from all AttributeGroupReferences contained in this AttributeGroup. 74 * 75 * @return an Enumeration of all the attributes of this attribute group. 76 **/ 77 public abstract Enumeration<AttributeDecl> getAttributes(); 78 79 /** 80 * Returns the id of this AttributeGroup 81 * 82 * @return the id of this AttributeGroup, or null, if no id was defined. 83 **/ 84 public String getId() { 85 return _id; 86 } // -- getId 87 88 /** 89 * Returns true if this AttributeGroup does not contain any AttributeDecls or any non-empty 90 * AttributeGroupReferences 91 * 92 * @return true if this AttributeGroup does not contain any AttributeDecls or any non-empty 93 * AttributeGroupReferences 94 **/ 95 public abstract boolean isEmpty(); 96 97 /** 98 * Returns the type of this Schema Structure 99 * 100 * @return the type of this Schema Structure 101 **/ 102 public short getStructureType() { 103 return Structure.ATTRIBUTE_GROUP; 104 } // -- getStructureType 105 106 /** 107 * Sets the id of this AttributeGroup 108 * 109 * @param id the id of this AttributeGroup 110 **/ 111 public void setId(String id) { 112 this._id = id; 113 } // -- setId 114 115 /** 116 * Checks the validity of this Attribute declaration 117 * 118 * @exception ValidationException when this Attribute declaration is invalid 119 **/ 120 public void validate() throws ValidationException { 121 // -- no validation currently needed 122 123 } // -- validate 124 125 126 } // -- AttributeGroup