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: /**
25: * This is not equivalent of sequence constructor term in XSLT text spec.
26: * Sequence constructor XSLT spec term is child construct for some
27: * XSLT instruction. But in this model instruction itself is considered
28: * as sequence constructor. This confirm with XSLT schema type.
29: * <pre>
30: * <xs:complexType name="sequence-constructor">
31: * <xs:complexContent mixed="true">
32: * <xs:extension base="xsl:versioned-element-type">
33: * <xs:group ref="xsl:sequence-constructor-group" minOccurs="0" maxOccurs="unbounded"/>
34: * </xs:extension>
35: * </xs:complexContent>
36: * </xs:complexType>
37: * </pre>
38: *
39: * @author ads
40: *
41: */
42: public interface SequenceConstructor extends ContentElement {
43:
44: String SEQUENCE_ELEMENT = "sequence_element"; // NOI18N
45:
46: List<SequenceElement> getSequenceChildren();
47:
48: /**
49: * Add new child <code>element</code> element at <code>position</code>.
50: * @param element new child element.
51: * @param position position for new element.
52: */
53: void addSequenceChild(SequenceElement element, int position);
54:
55: /**
56: * Append new child <code>element</code>.
57: * @param element new child element for appending.
58: */
59: void appendSequenceChild(SequenceElement element);
60:
61: /**
62: * Removes existing child <code>element</code>.
63: * @param element child element.
64: */
65: void removeSequenceChild(SequenceElement element);
66:
67: }
|