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     * The matrix element is the container element for matrixrow elements.
028     * 
029     * 
030     */
031    public interface MathMLMatrixElement extends MathMLContentElement {
032        /**
033         * The number of rows in the represented matrix.
034         * 
035         * @return value of the nrows attribute.
036         */
037        int getNrows();
038    
039        /**
040         * The number of columns in the represented matrix.
041         * 
042         * @return value of the ncols attribute.
043         */
044        int getNcols();
045    
046        /**
047         * The rows of the matrix, returned as a MathMLNodeList consisting of
048         * MathMLMatrixrowElements.
049         * 
050         * @return value of the rows attribute.
051         */
052        MathMLNodeList getRows();
053    
054        /**
055         * A convenience method to retrieve a specified row.
056         * 
057         * @param index
058         *            Position of the row in the list of rows. The first row is
059         *            numbered 1.
060         * @return The MathMLMatrixrowElement representing the index-th row.
061         * @throws DOMException
062         *             INDEX_SIZE_ERR: Raised if index is greater than the number
063         *             of rows in the matrix.
064         */
065        MathMLMatrixrowElement getRow(int index) throws DOMException;
066    
067        /**
068         * A convenience method to insert a row before the row that is currently
069         * the index-th row of this matrix. If index is 0, newRow is appended as
070         * the last row of the matrix.
071         * 
072         * @param newRow
073         *            MathMLMatrixrowElement to be inserted into the matrix.
074         * @param index
075         *            Unsigned integer giving the row position before which newRow
076         *            is to be inserted. The first row is numbered 1.
077         * @return The MathMLMatrixrowElement added. This is the new element
078         *         within the DOM.
079         * @throws DOMException
080         *             INDEX_SIZE_ERR: Raised if index is greater than one more
081         *             than the number of rows in the matrix.
082         *             HIERARCHY_REQUEST_ERR: Raised if the number of cells in
083         *             newRow doesn't match the number of columns in the matrix.
084         */
085        MathMLMatrixrowElement insertRow(MathMLMatrixrowElement newRow, int index)
086                throws DOMException;
087    
088        /**
089         * A convenience method to set the value of the index-th child matrixrow
090         * element of this element. If there is already a row at the specified
091         * index, it is replaced by newRow.
092         * 
093         * @param newRow
094         *            MathMLMatrixrowElement representing the matrixrow which is
095         *            to become the index-th row of the matrix.
096         * @param index
097         *            Unsigned integer giving the row which is to be set to
098         *            newRow. The first row is numbered 1.
099         * @return The MathMLMatrixrowElement child of this MathMLMatrixrowElement
100         *         representing newRow within the DOM.
101         * @throws DOMException
102         *             INDEX_SIZE_ERR: Raised if index is greater than the number
103         *             of rows in the matrix. HIERARCHY_REQUEST_ERR: Raised if the
104         *             number of cells in newRow doesn't match the number of
105         *             columns in the matrix.
106         */
107        MathMLMatrixrowElement setRow(MathMLMatrixrowElement newRow, int index)
108                throws DOMException;
109    
110        /**
111         * A convenience method to delete a row. The deletion changes the indices
112         * of the following rows.
113         * 
114         * @param index
115         *            Position of the row to be deleted in the list of rows
116         * @return None
117         * @throws DOMException
118         *             INDEX_SIZE_ERR: Raised if index is greater than the number
119         *             of rows in the matrix.
120         */
121        void deleteRow(int index) throws DOMException;
122    
123        /**
124         * A convenience method to remove a row and return it to the caller. The
125         * deletion changes the indices of the following rows.
126         * 
127         * @param index
128         *            Position of the row to be removed in the list of rows. The
129         *            first row is numbered 1.
130         * @return The MathMLMatrixrowElement being removed.
131         * @throws DOMException
132         *             INDEX_SIZE_ERR: Raised if index is greater than the number
133         *             of rows in the matrix.
134         */
135        MathMLMatrixrowElement removeRow(int index) throws DOMException;
136    };