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 represents the semantics element in MathML.
028 *
029 */
030 public interface MathMLSemanticsElement extends MathMLElement {
031 /**
032 * This attribute represents the first child of the semantics element,
033 * i.e. the child giving the primary content represented by the element.
034 *
035 * @return value of the body attribute.
036 */
037 MathMLElement getBody();
038
039 /**
040 * setter for the body attribute.
041 *
042 * @param body
043 * new value for body.
044 * @see #getBody()
045 */
046 void setBody(MathMLElement body);
047
048 /**
049 * Represents the number of annotation or annotation-xml children of the
050 * semantics element, i.e. the number of alternate content forms for this
051 * element.
052 *
053 * @return value of the nAnnotations attribute.
054 */
055 int getNAnnotations();
056
057 /**
058 * This method gives access to the index-th alternate content associated
059 * with a semantics element.
060 *
061 * @param index
062 * The one-based index of the annotation being retrieved.
063 * @return The MathMLAnnotationElement or MathMLXMLAnnotationElement
064 * representing the index-th annotation or annotation-xml child of
065 * the semantics element. Note that all child elements of a
066 * semantics element other than the first are required to be of
067 * one of these types.
068 */
069 MathMLElement getAnnotation(int index);
070
071 /**
072 * This method inserts newAnnotation before the current index-th alternate
073 * content associated with a semantics element. If index is 0,
074 * newAnnotation is appended as the last annotation or annotation-xml
075 * child of this element.
076 *
077 * @param newAnnotation
078 * A MathMLAnnotationElement or MathMLXMLAnnotationElement
079 * representing the new annotation or annotation-xml to be
080 * inserted.
081 * @param index
082 * The position in the list of annotation or annotation-xml
083 * children before which newAnnotation is to be inserted. The
084 * first annotation is numbered 1.
085 * @return The MathMLAnnotationElement or MathMLXMLAnnotationElement child
086 * of this element that represents the new annotation in the DOM.
087 * @throws DOMException
088 * HIERARCHY_REQUEST_ERR: Raised if newAnnotation is not a
089 * MathMLAnnotationElement or MathMLXMLAnnotationElement.
090 * INDEX_SIZE_ERR: Raised if index is greater than the current
091 * number of annotation or annotation-xml children of this
092 * semantics element.
093 */
094 MathMLElement insertAnnotation(MathMLElement newAnnotation, int index)
095 throws DOMException;
096
097 /**
098 * This method allows setting or replacement of the index-th alternate
099 * content associated with a semantics element. If there is already an
100 * annotation or annotation-xml element with this index, it is replaced by
101 * newAnnotation.
102 *
103 * @param newAnnotation
104 * A MathMLAnnotationElement or MathMLXMLAnnotationElement
105 * representing the new value of the index-th annotation or
106 * annotation-xml child of this semantics element.
107 * @param index
108 * The position in the list of annotation or annotation-xml
109 * children of this semantics element that is to be occupied by
110 * newAnnotation. The first annotation element is numbered 1.
111 * @return The MathMLAnnotationElement or MathMLXMLAnnotationElement child
112 * of this element that represents the new annotation in the DOM.
113 * @throws DOMException
114 * HIERARCHY_REQUEST_ERR: Raised if newAnnotation is not a
115 * MathMLAnnotationElement or MathMLXMLAnnotationElement.
116 * INDEX_SIZE_ERR: Raised if index is greater than one more
117 * than the current number of annotation or annotation-xml
118 * children of this semantics element.
119 */
120 MathMLElement setAnnotation(MathMLElement newAnnotation, int index)
121 throws DOMException;
122
123 /**
124 * A convenience method to delete the index-th alternate content
125 * associated with this semantics element.
126 *
127 * @param index
128 * The one-based index of the annotation being deleted.
129 */
130 void deleteAnnotation(int index);
131
132 /**
133 * A convenience method to delete the index-th alternate content
134 * associated with this semantics element, and to return it to the caller.
135 *
136 * @param index
137 * The one-based index of the annotation being deleted.
138 * @return The MathMLAnnotationElement or MathMLXMLAnnotationElement being
139 * deleted.
140 */
141 MathMLElement removeAnnotation(int index);
142 };