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 extends the MathMLPresentationElement interface for the
028     * MathML table or matrix row element mtr.
029     * 
030     * 
031     */
032    public interface MathMLTableRowElement extends MathMLPresentationElement {
033        /**
034         * A string representing an override of the row alignment specified in the
035         * containing mtable. Allowed values are top, bottom, center, baseline,
036         * and axis.
037         * 
038         * @return value of the rowalign attribute.
039         */
040        String getRowalign();
041    
042        /**
043         * setter for the rowalign attribute.
044         * 
045         * @param rowalign
046         *            new value for rowalign.
047         * @see #getRowalign()
048         */
049        void setRowalign(String rowalign);
050    
051        /**
052         * A string representing an override of the column alignment specified in
053         * the containing mtable. Allowed values are left, center, and right.
054         * 
055         * @return value of the columnalign attribute.
056         */
057        String getColumnalign();
058    
059        /**
060         * setter for the columnalign attribute.
061         * 
062         * @param columnalign
063         *            new value for columnalign.
064         * @see #getColumnalign()
065         */
066        void setColumnalign(String columnalign);
067    
068        /**
069         * A string specifying how the alignment groups within the cells of each
070         * row are to be aligned with the corresponding items above or below them
071         * in the same column. The string consists of a sequence of braced group
072         * alignment lists. Each group alignment list is a space-separated
073         * sequence, each of which can have the following values: left, right,
074         * center, or decimalpoint.
075         * 
076         * @return value of the groupalign attribute.
077         */
078        String getGroupalign();
079    
080        /**
081         * setter for the groupalign attribute.
082         * 
083         * @param groupalign
084         *            new value for groupalign.
085         * @see #getGroupalign()
086         */
087        void setGroupalign(String groupalign);
088    
089        /**
090         * A MathMLNodeList consisting of the cells of the row. Note that this
091         * does not include the label if this is a MathMLLabeledRowElement!
092         * 
093         * @return value of the cells attribute.
094         */
095        MathMLNodeList getCells();
096    
097        /**
098         * A convenience method to insert a new (empty) cell in the row.
099         * 
100         * @param index
101         *            Index of the cell before which the new cell is to be
102         *            inserted, where the first cell is numbered 0. If index is
103         *            equal to the current number of cells, the new cell is
104         *            appended as the last cell of the row. Note that the index
105         *            will differ from the index of the corresponding Node in the
106         *            collection returned by Node::childNodes if this is a
107         *            MathMLLabeledRowElement!
108         * @return Returns the MathMLTableCellElement representing the mtd element
109         *         being inserted.
110         * @throws DOMException
111         *             INDEX_SIZE_ERR: Raised if index is greater than the current
112         *             number of cells of this mtr element.
113         */
114        MathMLTableCellElement insertEmptyCell(int index) throws DOMException;
115    
116        /**
117         * A convenience method to insert a new cell in the row.
118         * 
119         * @param newCell
120         *            A MathMLTableCellElement representing the new cell (mtd
121         *            element) to be inserted.
122         * @param index
123         *            Index of the cell before which the new cell is to be
124         *            inserted, where the first cell is numbered 0. If index
125         *            equals the current number of cells, the new cell is appended
126         *            as the last cell of the row. Note that the index will differ
127         *            from the index of the corresponding Node in Node::childNodes
128         *            if this is a MathMLLabeledRowElement!
129         * @return The MathMLTableCellElement representing the mtd element being
130         *         inserted.
131         * @throws DOMException
132         *             INDEX_SIZE_ERR: Raised if index is greater than the current
133         *             number of cells of this mtr element.
134         */
135        MathMLTableCellElement insertCell(MathMLTableCellElement newCell,
136                int index) throws DOMException;
137    
138        /**
139         * A convenience method to set the value of a cell in the row to newCell.
140         * If index is equal to the current number of cells, newCell is appended
141         * as the last cell in the row.
142         * 
143         * @param newCell
144         *            A MathMLTableCellElement representing the cell (mtd element)
145         *            that is to be inserted.
146         * @param index
147         *            Index of the cell that is to be replaced by the new cell,
148         *            where the first cell is numbered 0. Note that the index will
149         *            differ from the index of the corresponding Node in the
150         *            collection returned by Node::childNodes if this is a
151         *            MathMLLabeledRowElement!
152         * @return The MathMLTableCellElement child of this MathMLTableRowElement
153         *         representing the new mtd element.
154         */
155        MathMLTableCellElement setCell(MathMLTableCellElement newCell, int index);
156    
157        /**
158         * A convenience method to delete a cell in the row.
159         * 
160         * @param index
161         *            Index of cell to be deleted. Note that the count will differ
162         *            from the index-th child node if this is a
163         *            MathMLLabeledRowElement!
164         */
165        void deleteCell(int index);
166    };