01: /*
02: * The contents of this file are subject to the terms of the Common Development
03: * and Distribution License (the License). You may not use this file except in
04: * compliance with the License.
05: *
06: * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
07: * or http://www.netbeans.org/cddl.txt.
08: *
09: * When distributing Covered Code, include this CDDL Header Notice in each file
10: * and include the License file at http://www.netbeans.org/cddl.txt.
11: * If applicable, add the following below the CDDL Header, with the fields
12: * enclosed by brackets [] replaced by your own identifying information:
13: * "Portions Copyrighted [year] [name of copyright owner]"
14: *
15: * The Original Software is NetBeans. The Initial Developer of the Original
16: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2007 Sun
17: * Microsystems, Inc. All Rights Reserved.
18: */
19:
20: package org.netbeans.modules.xslt.model;
21:
22: import java.util.List;
23:
24: import org.netbeans.modules.xml.xam.Referenceable;
25:
26: /**
27: * <pre>
28: * <xs:element name="attribute-set" substitutionGroup="xsl:declaration">
29: * <xs:complexType>
30: * <xs:complexContent>
31: * <xs:extension base="xsl:element-only-versioned-element-type">
32: * <xs:sequence minOccurs="0" maxOccurs="unbounded">
33: * <xs:element ref="xsl:attribute"/>
34: * </xs:sequence>
35: * <xs:attribute name="name" type="xsl:QName" use="required"/>
36: * <xs:attribute name="use-attribute-sets" type="xsl:QNames" default=""/>
37: * </xs:extension>
38: * </xs:complexContent>
39: * </xs:complexType>
40: * </xs:element>
41: * </pre>
42: *
43: * @author ads
44: *
45: */
46: public interface AttributeSet extends QualifiedNameable, Referenceable,
47: Declaration, UseAttributesSetsSpec {
48: String ATTRIBUTE_PROPERTY = "attribute"; // NOI18N
49:
50: /**
51: * @return attributes children for this stylesheet.
52: * Note that resulting collection is unmodifiable.
53: */
54: List<Attribute> getAttributes();
55:
56: /**
57: * Add new attribute <code>attr</code> element at <code>position</code>.
58: * @param attr new attribute element.
59: * @param position position for new element.
60: */
61: void addAttribute(Attribute attr, int position);
62:
63: /**
64: * Append new attribute element.
65: * @param attr new attribute child element for appending.
66: */
67: void appendAttribute(Attribute attr);
68:
69: /**
70: * Removes existing <code>attr</code> import child element.
71: * @param attr attribute child element.
72: */
73: void removeAttribute(Attribute attr);
74: }
|