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.Node; 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 is the interface from which the interfaces representing the MathML 028 * Content token elements (ci, cn and csymbol) are derived. These elements may 029 * contain MathML Presentation elements, Text nodes, or a combination of both. 030 * Thus the getArgument and insertArgument methods have been provided to deal 031 * with this distinction between these elements and other MathML Content 032 * elements. 033 * 034 * 035 */ 036 public interface MathMLContentToken extends MathMLContentElement { 037 /** 038 * The arguments of this element, returned as a MathMLNodeList. Note that 039 * this is not necessarily the same as Node::childNodes, particularly in 040 * the case of the cn element. The reason is that the sep elements that 041 * are used to separate the arguments of a cn are not returned. 042 * 043 * @return value of the arguments attribute. 044 */ 045 MathMLNodeList getArguments(); 046 047 /** 048 * A URI pointing to a semantic definition for this content element. Note 049 * that there is no stipulation about the form this definition may take! 050 * 051 * @return value of the definitionURL attribute. 052 */ 053 String getDefinitionURL(); 054 055 /** 056 * setter for the definitionURL attribute. 057 * 058 * @param definitionURL 059 * new value for definitionURL. 060 * @see #getDefinitionURL() 061 */ 062 void setDefinitionURL(String definitionURL); 063 064 /** 065 * A string describing the syntax in which the definition located at 066 * definitionURL is given. 067 * 068 * @return value of the encoding attribute. 069 */ 070 String getEncoding(); 071 072 /** 073 * setter for the encoding attribute. 074 * 075 * @param encoding 076 * new value for encoding. 077 * @see #getEncoding() 078 */ 079 void setEncoding(String encoding); 080 081 /** 082 * A convenience method to retrieve the child argument at the position 083 * referenced by index. Note that this is not necessarily the same as the 084 * index-th child Node of this Element; in particular, sep elements will 085 * not be counted. 086 * 087 * @param index 088 * Position of desired argument in the list of arguments. The 089 * first argument is numbered 1. 090 * @return The Node retrieved. 091 */ 092 Node getArgument(int index); 093 094 /** 095 * A convenience method to insert newArgument before the current index-th 096 * argument child of this element. If index is 0, newArgument is appended 097 * as the last argument. 098 * 099 * @param newArgument 100 * Node to be inserted as the index-th argument. This will 101 * either be a MathMLElement or a Text node. 102 * @param index 103 * Position before which newArgument is to be inserted. The 104 * first argument is numbered 1.Note that this is not 105 * necessarily the index of the Node in the list of child 106 * nodes, as nodes representing such elements as sep are not 107 * counted as arguments. 108 * @param newArgument 109 * Node to be inserted as the index-th argument. This will 110 * either be a MathMLElement or a Text node. 111 * @return The Node inserted. This is the element within the DOM. 112 */ 113 Node insertArgument(Node newArgument, int index); 114 115 /** 116 * A convenience method to set an argument child at the position 117 * referenced by index. If there is currently an argument at this 118 * position, it is replaced by newArgument. 119 * 120 * @param newArgument 121 * Node to be inserted as the argument. This will either be a 122 * MathMLElement or a Text node. 123 * @param index 124 * Position of the argument that is to be set to newArgument in 125 * the list of arguments. The first argument is numbered 1. 126 * Note that this is not necessarily the index of the Node in 127 * the list of child nodes, as nodes representing such elements 128 * as sep are not counted as arguments. 129 * @param newArgument 130 * Node to be inserted as the argument. This will either be a 131 * MathMLElement or a Text node. 132 * @return The Node inserted. This is the element within the DOM. 133 */ 134 Node setArgument(Node newArgument, int index); 135 136 /** 137 * A convenience method to delete the argument child located at the 138 * position referenced by index. 139 * 140 * @param index 141 * Position of the argument to be deleted from the list of 142 * arguments. The first argument is numbered 1. 143 */ 144 void deleteArgument(int index); 145 146 /** 147 * A convenience method to delete the argument child located at the 148 * position referenced by index, and to return it to the caller. 149 * 150 * @param index 151 * Position of the argument to be deleted from the list of 152 * arguments. The first argument is numbered 1. 153 * @return A Node representing the deleted argument. 154 */ 155 Node removeArgument(int index); 156 };