001    /*
002     * Copyright 2007 - 2007 JEuclid, http://jeuclid.sf.net
003     * 
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *      http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013     * See the License for the specific language governing permissions and
014     * limitations under the License.
015     */
016    package org.w3c.dom.mathml;
017    
018    import org.w3c.dom.DOMException;
019    
020    /*
021     * Please note: This file was automatically generated from the source of the
022     * MathML specification. Do not edit it. If there are errors or missing
023     * elements, please correct the stylesheet instead.
024     */
025    
026    /**
027     * This interface supports the MathML Content elements that may contain child
028     * Content elements. The elements directly supported by MathMLContentContainer
029     * include: reln (deprecated), lambda, lowlimit, uplimit, degree,
030     * domainofapplication, and momentabout. Interfaces derived from
031     * MathMLContentContainer support the elements apply, fn, interval, condition,
032     * declare, bvar, set, list, vector, matrix, and matrixrow.
033     * 
034     * 
035     */
036    public interface MathMLContentContainer extends MathMLContentElement,
037            MathMLContainer {
038        /**
039         * The number of bvar child elements of this element.
040         * 
041         * @return value of the nBoundVariables attribute.
042         */
043        int getNBoundVariables();
044    
045        /**
046         * This attribute represents the condition child element of this node. See .
047         * 
048         * @return value of the condition attribute.
049         */
050        MathMLConditionElement getCondition();
051    
052        /**
053         * setter for the condition attribute.
054         * 
055         * @param condition
056         *            new value for condition.
057         * @see #getCondition()
058         * @throws DOMException
059         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
060         *             permit a child condition element. In particular, raised if
061         *             this element is not a apply, set, or list.
062         */
063        void setCondition(MathMLConditionElement condition);
064    
065        /**
066         * This attribute represents the degree child element of this node. This
067         * expresses, for instance, the degree of differentiation if this element
068         * is a bvar child of an apply element whose first child is a diff or
069         * partialdiff. If this is an apply element whose first child is a
070         * partialdiff, the opDegree attribute, if present, represents the total
071         * degree of differentiation. See .
072         * 
073         * @return value of the opDegree attribute.
074         */
075        MathMLElement getOpDegree();
076    
077        /**
078         * setter for the opDegree attribute.
079         * 
080         * @param opDegree
081         *            new value for opDegree.
082         * @see #getOpDegree()
083         * @throws DOMException
084         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
085         *             permit a child degree element. In particular, raised if
086         *             this element is not a bvar or apply.
087         */
088        void setOpDegree(MathMLElement opDegree);
089    
090        /**
091         * This attribute represents the domainofapplication child element of this
092         * node, if present. This may express, for instance, the domain of
093         * integration if this element is an apply element whose first child is an
094         * integral operator (int). See .
095         * 
096         * @return value of the domainOfApplication attribute.
097         */
098        MathMLElement getDomainOfApplication();
099    
100        /**
101         * setter for the domainOfApplication attribute.
102         * 
103         * @param domainOfApplication
104         *            new value for domainOfApplication.
105         * @see #getDomainOfApplication()
106         * @throws DOMException
107         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
108         *             permit a child domainofapplication element.
109         */
110        void setDomainOfApplication(MathMLElement domainOfApplication);
111    
112        /**
113         * This attribute represents the momentabout child element of this node,
114         * if present. This typically expresses the point about which a
115         * statistical moment is to be calculated, if this element is an apply
116         * element whose first child is a moment. See .
117         * 
118         * @return value of the momentAbout attribute.
119         */
120        MathMLElement getMomentAbout();
121    
122        /**
123         * setter for the momentAbout attribute.
124         * 
125         * @param momentAbout
126         *            new value for momentAbout.
127         * @see #getMomentAbout()
128         * @throws DOMException
129         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
130         *             permit a child momentabout element. In particular, raised
131         *             if this element is not an apply whose first child is a
132         *             moment.
133         */
134        void setMomentAbout(MathMLElement momentAbout);
135    
136        /**
137         * This method retrieves the index-th MathMLBvarElement child of the
138         * MathMLElement. Note that only bvar child elements are counted in
139         * determining the index-th bound variable.
140         * 
141         * @param index
142         *            The one-based index into the bound variable children of this
143         *            element of the MathMLBvarElement to be retrieved.
144         * @return The MathMLBvarElement representing the index-th bvar child of
145         *         this element.
146         */
147        MathMLBvarElement getBoundVariable(int index);
148    
149        /**
150         * This method inserts a MathMLBvarElement as a child node before the
151         * current index-th bound variable child of this MathMLElement. If index
152         * is 0, newBVar is appended as the last bound variable child. This has
153         * the effect of adding a bound variable to the expression this element
154         * represents. Note that the new bound variable is inserted as the
155         * index-th bvar child node, not necessarily as the index-th child node.
156         * The point of the method is to allow insertion of bound variables
157         * without requiring the caller to calculate the exact order of child
158         * qualifier elements.
159         * 
160         * @param newBVar
161         *            A MathMLBvarElement representing the bvar element being
162         *            added.
163         * @param index
164         *            The one-based index into the bound variable children of this
165         *            element before which newBVar is to be inserted.
166         * @return The MathMLBvarElement being added.
167         * @throws DOMException
168         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
169         *             permit child bvar elements.
170         */
171        MathMLBvarElement insertBoundVariable(MathMLBvarElement newBVar, int index)
172                throws DOMException;
173    
174        /**
175         * This method sets the index-th bound variable child of this
176         * MathMLElement to newBVar. This has the effect of setting a bound
177         * variable in the expression this element represents. Note that the new
178         * bound variable is inserted as the index-th bvar child node, not
179         * necessarily as the index-th child node. The point of the method is to
180         * allow insertion of bound variables without requiring the caller to
181         * calculate the exact order of child qualifier elements. If there is
182         * already a bvar at the index-th position, it is replaced by newBVar.
183         * 
184         * @param newBVar
185         *            The new MathMLBvarElement child of this element being set.
186         * @param index
187         *            The one-based index into the bound variable children of this
188         *            element at which newBVar is to be inserted.
189         * @return The MathMLBvarElement being set.
190         * @throws DOMException
191         *             HIERARCHY_REQUEST_ERR: Raised if this element does not
192         *             permit child bvar elements.
193         */
194        MathMLBvarElement setBoundVariable(MathMLBvarElement newBVar, int index)
195                throws DOMException;
196    
197        /**
198         * This method deletes the index-th MathMLBvarElement child of the
199         * MathMLElement. This has the effect of removing this bound variable from
200         * the list of qualifiers affecting the element this represents.
201         * 
202         * @param index
203         *            The one-based index into the bound variable children of this
204         *            element of the MathMLBvarElement to be removed.
205         */
206        void deleteBoundVariable(int index);
207    
208        /**
209         * This method removes the index-th MathMLBvarElement child of the
210         * MathMLElement and returns it to the caller. This has the effect of
211         * removing this bound variable from the list of qualifiers affecting the
212         * element this represents.
213         * 
214         * @param index
215         *            The one-based index into the bound variable children of this
216         *            element of the MathMLBvarElement to be removed.
217         * @return The MathMLBvarElement being removed.
218         */
219        MathMLBvarElement removeBoundVariable(int index);
220    };