package org.xmlsmartdoc.SmartDoc.mathml.rParts;
import org.w3c.dom.*;
/**
* <b>MDegree</b> is generated by Relaxer based on MathML.rlx.
* This class is derived from:
*
* <!-- for programmer
* <elementRule role="degree">
* <choice occurs="*">
* <ref label="ci"/>
* <ref label="cn"/>
* <ref label="apply"/>
* <ref label="reln"/>
* <ref label="lambda"/>
* <ref label="condition"/>
* <ref label="declare"/>
* <ref label="sep"/>
* <ref label="semantics"/>
* <ref label="annotation"/>
* <ref label="annotation-xml"/>
* <ref label="interval"/>
* <ref label="list"/>
* <ref label="matrix"/>
* <ref label="matrixrow"/>
* <ref label="set"/>
* <ref label="vector"/>
* <ref label="lowlimit"/>
* <ref label="uplimit"/>
* <ref label="bvar"/>
* <ref label="degree"/>
* <ref label="logbase"/>
* <ref label="inverse"/>
* <ref label="ident"/>
* <ref label="abs"/>
* <ref label="conjugate"/>
* <ref label="exp"/>
* <ref label="factorial"/>
* <ref label="not"/>
* <ref label="ln"/>
* <ref label="sin"/>
* <ref label="cos"/>
* <ref label="tan"/>
* <ref label="sec"/>
* <ref label="csc"/>
* <ref label="cot"/>
* <ref label="sinh"/>
* <ref label="cosh"/>
* <ref label="tanh"/>
* <ref label="sech"/>
* <ref label="csch"/>
* <ref label="coth"/>
* <ref label="arcsin"/>
* <ref label="arccos"/>
* <ref label="arctan"/>
* <ref label="determinant"/>
* <ref label="transpose"/>
* <ref label="quotient"/>
* <ref label="divide"/>
* <ref label="power"/>
* <ref label="rem"/>
* <ref label="implies"/>
* <ref label="setdiff"/>
* <ref label="fn"/>
* <ref label="compose"/>
* <ref label="plus"/>
* <ref label="times"/>
* <ref label="max"/>
* <ref label="min"/>
* <ref label="gcd"/>
* <ref label="and"/>
* <ref label="or"/>
* <ref label="xor"/>
* <ref label="union"/>
* <ref label="intersect"/>
* <ref label="mean"/>
* <ref label="sdev"/>
* <ref label="variance"/>
* <ref label="median"/>
* <ref label="mode"/>
* <ref label="selector"/>
* <ref label="root"/>
* <ref label="minus"/>
* <ref label="log"/>
* <ref label="int"/>
* <ref label="diff"/>
* <ref label="partialdiff"/>
* <ref label="sum"/>
* <ref label="product"/>
* <ref label="limit"/>
* <ref label="moment"/>
* <ref label="exists"/>
* <ref label="forall"/>
* <ref label="neq"/>
* <ref label="in"/>
* <ref label="notin"/>
* <ref label="notsubset"/>
* <ref label="notprsubset"/>
* <ref label="tendsto"/>
* <ref label="eq"/>
* <ref label="leq"/>
* <ref label="lt"/>
* <ref label="geq"/>
* <ref label="gt"/>
* <ref label="subset"/>
* <ref label="prsubset"/>
* <ref label="mi"/>
* <ref label="mn"/>
* <ref label="mo"/>
* <ref label="mtext"/>
* <ref label="ms"/>
* <ref label="mspace"/>
* <ref label="mrow"/>
* <ref label="mfrac"/>
* <ref label="msqrt"/>
* <ref label="mroot"/>
* <ref label="mstyle"/>
* <ref label="merror"/>
* <ref label="mpadded"/>
* <ref label="mphantom"/>
* <ref label="mfenced"/>
* <ref label="msub"/>
* <ref label="msup"/>
* <ref label="msubsup"/>
* <ref label="munder"/>
* <ref label="mover"/>
* <ref label="munderover"/>
* <ref label="mmultiscripts"/>
* <ref label="mtable"/>
* <ref label="mtr"/>
* <ref label="mtd"/>
* <ref label="maligngroup"/>
* <ref label="malignmark"/>
* <ref label="maction"/>
* </choice>
* </elementRule>
*
* <tag name="degree">
* <attribute name="class" type="string"/>
* <attribute name="style" type="string"/>
* <attribute name="id" type="ID"/>
* <attribute name="other" type="string"/>
* </tag>
* -->
* <!-- for javadoc -->
* <pre> <elementRule role="degree">
* <choice occurs="*">
* <ref label="ci"/>
* <ref label="cn"/>
* <ref label="apply"/>
* <ref label="reln"/>
* <ref label="lambda"/>
* <ref label="condition"/>
* <ref label="declare"/>
* <ref label="sep"/>
* <ref label="semantics"/>
* <ref label="annotation"/>
* <ref label="annotation-xml"/>
* <ref label="interval"/>
* <ref label="list"/>
* <ref label="matrix"/>
* <ref label="matrixrow"/>
* <ref label="set"/>
* <ref label="vector"/>
* <ref label="lowlimit"/>
* <ref label="uplimit"/>
* <ref label="bvar"/>
* <ref label="degree"/>
* <ref label="logbase"/>
* <ref label="inverse"/>
* <ref label="ident"/>
* <ref label="abs"/>
* <ref label="conjugate"/>
* <ref label="exp"/>
* <ref label="factorial"/>
* <ref label="not"/>
* <ref label="ln"/>
* <ref label="sin"/>
* <ref label="cos"/>
* <ref label="tan"/>
* <ref label="sec"/>
* <ref label="csc"/>
* <ref label="cot"/>
* <ref label="sinh"/>
* <ref label="cosh"/>
* <ref label="tanh"/>
* <ref label="sech"/>
* <ref label="csch"/>
* <ref label="coth"/>
* <ref label="arcsin"/>
* <ref label="arccos"/>
* <ref label="arctan"/>
* <ref label="determinant"/>
* <ref label="transpose"/>
* <ref label="quotient"/>
* <ref label="divide"/>
* <ref label="power"/>
* <ref label="rem"/>
* <ref label="implies"/>
* <ref label="setdiff"/>
* <ref label="fn"/>
* <ref label="compose"/>
* <ref label="plus"/>
* <ref label="times"/>
* <ref label="max"/>
* <ref label="min"/>
* <ref label="gcd"/>
* <ref label="and"/>
* <ref label="or"/>
* <ref label="xor"/>
* <ref label="union"/>
* <ref label="intersect"/>
* <ref label="mean"/>
* <ref label="sdev"/>
* <ref label="variance"/>
* <ref label="median"/>
* <ref label="mode"/>
* <ref label="selector"/>
* <ref label="root"/>
* <ref label="minus"/>
* <ref label="log"/>
* <ref label="int"/>
* <ref label="diff"/>
* <ref label="partialdiff"/>
* <ref label="sum"/>
* <ref label="product"/>
* <ref label="limit"/>
* <ref label="moment"/>
* <ref label="exists"/>
* <ref label="forall"/>
* <ref label="neq"/>
* <ref label="in"/>
* <ref label="notin"/>
* <ref label="notsubset"/>
* <ref label="notprsubset"/>
* <ref label="tendsto"/>
* <ref label="eq"/>
* <ref label="leq"/>
* <ref label="lt"/>
* <ref label="geq"/>
* <ref label="gt"/>
* <ref label="subset"/>
* <ref label="prsubset"/>
* <ref label="mi"/>
* <ref label="mn"/>
* <ref label="mo"/>
* <ref label="mtext"/>
* <ref label="ms"/>
* <ref label="mspace"/>
* <ref label="mrow"/>
* <ref label="mfrac"/>
* <ref label="msqrt"/>
* <ref label="mroot"/>
* <ref label="mstyle"/>
* <ref label="merror"/>
* <ref label="mpadded"/>
* <ref label="mphantom"/>
* <ref label="mfenced"/>
* <ref label="msub"/>
* <ref label="msup"/>
* <ref label="msubsup"/>
* <ref label="munder"/>
* <ref label="mover"/>
* <ref label="munderover"/>
* <ref label="mmultiscripts"/>
* <ref label="mtable"/>
* <ref label="mtr"/>
* <ref label="mtd"/>
* <ref label="maligngroup"/>
* <ref label="malignmark"/>
* <ref label="maction"/>
* </choice>
* </elementRule>
* <tag name="degree">
* <attribute name="class" type="string"/>
* <attribute name="style" type="string"/>
* <attribute name="id" type="ID"/>
* <attribute name="other" type="string"/>
* </tag>
* </pre>
*
* @version MathML.rlx 1.0 (Sat Sep 09 10:48:47 JST 2000)
* @author Relaxer 0.11b (by ASAMI@Yokohama)
*/
public class MDegree implements java.io.Serializable, IMDegreeContent, IMLogbaseContent, IMFnContent, IRVisitable, IRNode, IMBvarContent, IMUplimitContent, IMLowlimitContent, IMVectorContent, IMSetContent, IMMatrixrowContent, IMMatrixContent, IMListContent, IMIntervalContent, IMAnnotationXmlContent, IMSemanticsContent, IMDeclareContent, IMConditionContent, IMLambdaContent, IMRelnContent, IMApplyContent {
private String classValue;
private String style;
private String id;
private String other;
// List<IMDegreeContent>
private java.util.List content = new java.util.ArrayList();
private IRNode parentRNode;
/**
* Creates a <code>MDegree</code>.
*
*/
public MDegree() {
}
/**
* Creates a <code>MDegree</code> by the Stack <code>stack</code>
* that contains Elements.
* This constructor is supposed to be used internally
* by the Relaxer system.
*
* @param stack
*/
public MDegree(RStack stack) {
setup(stack);
}
/**
* Creates a <code>MDegree</code> by the Document <code>doc</code>.
*
* @param doc
*/
public MDegree(Document doc) {
setup(doc.getDocumentElement());
}
/**
* Creates a <code>MDegree</code> by the Element <code>element</code>.
*
* @param element
*/
public MDegree(Element element) {
setup(element);
}
/**
* Initializes the <code>MDegree</code> by the Document <code>doc</code>.
*
* @param doc
*/
public void setup(Document doc) {
setup(doc.getDocumentElement());
}
/**
* Initializes the <code>MDegree</code> by the Element <code>element</code>.
*
* @param element
*/
public void setup(Element element) {
init(element);
}
/**
* Initializes the <code>MDegree</code> by the Stack <code>stack</code>
* that contains Elements.
* This constructor is supposed to be used internally
* by the Relaxer system.
*
* @param stack
*/
public void setup(RStack stack) {
setup(stack.popElement());
}
/**
* @param element
*/
private void init(Element element) {
RStack stack = new RStack(element);
classValue = URelaxer2.getAttributePropertyAsString(element, "http://www.w3.org/1998/Math/MathML", "class");
style = URelaxer2.getAttributePropertyAsString(element, "http://www.w3.org/1998/Math/MathML", "style");
id = URelaxer2.getAttributePropertyAsString(element, "http://www.w3.org/1998/Math/MathML", "id");
other = URelaxer2.getAttributePropertyAsString(element, "http://www.w3.org/1998/Math/MathML", "other");
content.clear();
while (!stack.isEmptyElement()) {
if (MCi.isMatch(stack)) {
addContent(new MCi(stack));
} else if (MCn.isMatch(stack)) {
addContent(new MCn(stack));
} else if (MApply.isMatch(stack)) {
addContent(new MApply(stack));
} else if (MReln.isMatch(stack)) {
addContent(new MReln(stack));
} else if (MLambda.isMatch(stack)) {
addContent(new MLambda(stack));
} else if (MCondition.isMatch(stack)) {
addContent(new MCondition(stack));
} else if (MDeclare.isMatch(stack)) {
addContent(new MDeclare(stack));
} else if (MSep.isMatch(stack)) {
addContent(new MSep(stack));
} else if (MSemantics.isMatch(stack)) {
addContent(new MSemantics(stack));
} else if (MAnnotation.isMatch(stack)) {
addContent(new MAnnotation(stack));
} else if (MAnnotationXml.isMatch(stack)) {
addContent(new MAnnotationXml(stack));
} else if (MInterval.isMatch(stack)) {
addContent(new MInterval(stack));
} else if (MList.isMatch(stack)) {
addContent(new MList(stack));
} else if (MMatrix.isMatch(stack)) {
addContent(new MMatrix(stack));
} else if (MMatrixrow.isMatch(stack)) {
addContent(new MMatrixrow(stack));
} else if (MSet.isMatch(stack)) {
addContent(new MSet(stack));
} else if (MVector.isMatch(stack)) {
addContent(new MVector(stack));
} else if (MLowlimit.isMatch(stack)) {
addContent(new MLowlimit(stack));
} else if (MUplimit.isMatch(stack)) {
addContent(new MUplimit(stack));
} else if (MBvar.isMatch(stack)) {
addContent(new MBvar(stack));
} else if (MDegree.isMatch(stack)) {
addContent(new MDegree(stack));
} else if (MLogbase.isMatch(stack)) {
addContent(new MLogbase(stack));
} else if (MInverse.isMatch(stack)) {
addContent(new MInverse(stack));
} else if (MIdent.isMatch(stack)) {
addContent(new MIdent(stack));
} else if (MAbs.isMatch(stack)) {
addContent(new MAbs(stack));
} else if (MConjugate.isMatch(stack)) {
addContent(new MConjugate(stack));
} else if (MExp.isMatch(stack)) {
addContent(new MExp(stack));
} else if (MFactorial.isMatch(stack)) {
addContent(new MFactorial(stack));
} else if (MNot.isMatch(stack)) {
addContent(new MNot(stack));
} else if (MLn.isMatch(stack)) {
addContent(new MLn(stack));
} else if (MSin.isMatch(stack)) {
addContent(new MSin(stack));
} else if (MCos.isMatch(stack)) {
addContent(new MCos(stack));
} else if (MTan.isMatch(stack)) {
addContent(new MTan(stack));
} else if (MSec.isMatch(stack)) {
addContent(new MSec(stack));
} else if (MCsc.isMatch(stack)) {
addContent(new MCsc(stack));
} else if (MCot.isMatch(stack)) {
addContent(new MCot(stack));
} else if (MSinh.isMatch(stack)) {
addContent(new MSinh(stack));
} else if (MCosh.isMatch(stack)) {
addContent(new MCosh(stack));
} else if (MTanh.isMatch(stack)) {
addContent(new MTanh(stack));
} else if (MSech.isMatch(stack)) {
addContent(new MSech(stack));
} else if (MCsch.isMatch(stack)) {
addContent(new MCsch(stack));
} else if (MCoth.isMatch(stack)) {
addContent(new MCoth(stack));
} else if (MArcsin.isMatch(stack)) {
addContent(new MArcsin(stack));
} else if (MArccos.isMatch(stack)) {
addContent(new MArccos(stack));
} else if (MArctan.isMatch(stack)) {
addContent(new MArctan(stack));
} else if (MDeterminant.isMatch(stack)) {
addContent(new MDeterminant(stack));
} else if (MTranspose.isMatch(stack)) {
addContent(new MTranspose(stack));
} else if (MQuotient.isMatch(stack)) {
addContent(new MQuotient(stack));
} else if (MDivide.isMatch(stack)) {
addContent(new MDivide(stack));
} else if (MPower.isMatch(stack)) {
addContent(new MPower(stack));
} else if (MRem.isMatch(stack)) {
addContent(new MRem(stack));
} else if (MImplies.isMatch(stack)) {
addContent(new MImplies(stack));
} else if (MSetdiff.isMatch(stack)) {
addContent(new MSetdiff(stack));
} else if (MFn.isMatch(stack)) {
addContent(new MFn(stack));
} else if (MCompose.isMatch(stack)) {
addContent(new MCompose(stack));
} else if (MPlus.isMatch(stack)) {
addContent(new MPlus(stack));
} else if (MTimes.isMatch(stack)) {
addContent(new MTimes(stack));
} else if (MMax.isMatch(stack)) {
addContent(new MMax(stack));
} else if (MMin.isMatch(stack)) {
addContent(new MMin(stack));
} else if (MGcd.isMatch(stack)) {
addContent(new MGcd(stack));
} else if (MAnd.isMatch(stack)) {
addContent(new MAnd(stack));
} else if (MOr.isMatch(stack)) {
addContent(new MOr(stack));
} else if (MXor.isMatch(stack)) {
addContent(new MXor(stack));
} else if (MUnion.isMatch(stack)) {
addContent(new MUnion(stack));
} else if (MIntersect.isMatch(stack)) {
addContent(new MIntersect(stack));
} else if (MMean.isMatch(stack)) {
addContent(new MMean(stack));
} else if (MSdev.isMatch(stack)) {
addContent(new MSdev(stack));
} else if (MVariance.isMatch(stack)) {
addContent(new MVariance(stack));
} else if (MMedian.isMatch(stack)) {
addContent(new MMedian(stack));
} else if (MMode.isMatch(stack)) {
addContent(new MMode(stack));
} else if (MSelector.isMatch(stack)) {
addContent(new MSelector(stack));
} else if (MRoot.isMatch(stack)) {
addContent(new MRoot(stack));
} else if (MMinus.isMatch(stack)) {
addContent(new MMinus(stack));
} else if (MLog.isMatch(stack)) {
addContent(new MLog(stack));
} else if (MInt.isMatch(stack)) {
addContent(new MInt(stack));
} else if (MDiff.isMatch(stack)) {
addContent(new MDiff(stack));
} else if (MPartialdiff.isMatch(stack)) {
addContent(new MPartialdiff(stack));
} else if (MSum.isMatch(stack)) {
addContent(new MSum(stack));
} else if (MProduct.isMatch(stack)) {
addContent(new MProduct(stack));
} else if (MLimit.isMatch(stack)) {
addContent(new MLimit(stack));
} else if (MMoment.isMatch(stack)) {
addContent(new MMoment(stack));
} else if (MExists.isMatch(stack)) {
addContent(new MExists(stack));
} else if (MForall.isMatch(stack)) {
addContent(new MForall(stack));
} else if (MNeq.isMatch(stack)) {
addContent(new MNeq(stack));
} else if (MIn.isMatch(stack)) {
addContent(new MIn(stack));
} else if (MNotin.isMatch(stack)) {
addContent(new MNotin(stack));
} else if (MNotsubset.isMatch(stack)) {
addContent(new MNotsubset(stack));
} else if (MNotprsubset.isMatch(stack)) {
addContent(new MNotprsubset(stack));
} else if (MTendsto.isMatch(stack)) {
addContent(new MTendsto(stack));
} else if (MEq.isMatch(stack)) {
addContent(new MEq(stack));
} else if (MLeq.isMatch(stack)) {
addContent(new MLeq(stack));
} else if (MLt.isMatch(stack)) {
addContent(new MLt(stack));
} else if (MGeq.isMatch(stack)) {
addContent(new MGeq(stack));
} else if (MGt.isMatch(stack)) {
addContent(new MGt(stack));
} else if (MSubset.isMatch(stack)) {
addContent(new MSubset(stack));
} else if (MPrsubset.isMatch(stack)) {
addContent(new MPrsubset(stack));
} else if (MMi.isMatch(stack)) {
addContent(new MMi(stack));
} else if (MMn.isMatch(stack)) {
addContent(new MMn(stack));
} else if (MMo.isMatch(stack)) {
addContent(new MMo(stack));
} else if (MMtext.isMatch(stack)) {
addContent(new MMtext(stack));
} else if (MMs.isMatch(stack)) {
addContent(new MMs(stack));
} else if (MMspace.isMatch(stack)) {
addContent(new MMspace(stack));
} else if (MMrow.isMatch(stack)) {
addContent(new MMrow(stack));
} else if (MMfrac.isMatch(stack)) {
addContent(new MMfrac(stack));
} else if (MMsqrt.isMatch(stack)) {
addContent(new MMsqrt(stack));
} else if (MMroot.isMatch(stack)) {
addContent(new MMroot(stack));
} else if (MMstyle.isMatch(stack)) {
addContent(new MMstyle(stack));
} else if (MMerror.isMatch(stack)) {
addContent(new MMerror(stack));
} else if (MMpadded.isMatch(stack)) {
addContent(new MMpadded(stack));
} else if (MMphantom.isMatch(stack)) {
addContent(new MMphantom(stack));
} else if (MMfenced.isMatch(stack)) {
addContent(new MMfenced(stack));
} else if (MMsub.isMatch(stack)) {
addContent(new MMsub(stack));
} else if (MMsup.isMatch(stack)) {
addContent(new MMsup(stack));
} else if (MMsubsup.isMatch(stack)) {
addContent(new MMsubsup(stack));
} else if (MMunder.isMatch(stack)) {
addContent(new MMunder(stack));
} else if (MMover.isMatch(stack)) {
addContent(new MMover(stack));
} else if (MMunderover.isMatch(stack)) {
addContent(new MMunderover(stack));
} else if (MMmultiscripts.isMatch(stack)) {
addContent(new MMmultiscripts(stack));
} else if (MMtable.isMatch(stack)) {
addContent(new MMtable(stack));
} else if (MMtr.isMatch(stack)) {
addContent(new MMtr(stack));
} else if (MMtd.isMatch(stack)) {
addContent(new MMtd(stack));
} else if (MMaligngroup.isMatch(stack)) {
addContent(new MMaligngroup(stack));
} else if (MMalignmark.isMatch(stack)) {
addContent(new MMalignmark(stack));
} else if (MMaction.isMatch(stack)) {
addContent(new MMaction(stack));
} else {
break;
}
}
}
/**
* Creates a DOM representation of the object.
* Result is appended to the Node <code>parent</code>.
*
* @param parent
*/
public void makeElement(Node parent) {
Document doc;
if (parent instanceof Document) {
doc = (Document)parent;
} else {
doc = parent.getOwnerDocument();
}
Element element = doc.createElement("degree");
int size;
if (classValue != null) {
URelaxer2.setAttributePropertyByString(element, "http://www.w3.org/1998/Math/MathML", "class", classValue);
}
if (style != null) {
URelaxer2.setAttributePropertyByString(element, "http://www.w3.org/1998/Math/MathML", "style", style);
}
if (id != null) {
URelaxer2.setAttributePropertyByString(element, "http://www.w3.org/1998/Math/MathML", "id", id);
}
if (other != null) {
URelaxer2.setAttributePropertyByString(element, "http://www.w3.org/1998/Math/MathML", "other", other);
}
size = content.size();
for (int i = 0;i < size;i++) {
IMDegreeContent value = (IMDegreeContent)this.content.get(i);
value.makeElement(element);
}
parent.appendChild(element);
}
/**
* Gets the String property <b>classValue</b>.
*
* @return String
*/
public final String getClassValue() {
return (classValue);
}
/**
* Sets the String property <b>classValue</b>.
*
* @param classValue
*/
public final void setClassValue(String classValue) {
this.classValue = classValue;
}
/**
* Gets the String property <b>style</b>.
*
* @return String
*/
public final String getStyle() {
return (style);
}
/**
* Sets the String property <b>style</b>.
*
* @param style
*/
public final void setStyle(String style) {
this.style = style;
}
/**
* Gets the String property <b>id</b>.
*
* @return String
*/
public final String getId() {
return (id);
}
/**
* Sets the String property <b>id</b>.
*
* @param id
*/
public final void setId(String id) {
this.id = id;
}
/**
* Gets the String property <b>other</b>.
*
* @return String
*/
public final String getOther() {
return (other);
}
/**
* Sets the String property <b>other</b>.
*
* @param other
*/
public final void setOther(String other) {
this.other = other;
}
/**
* Gets the IMDegreeContent property <b>content</b>.
*
* @return IMDegreeContent[]
*/
public final IMDegreeContent[] getContent() {
IMDegreeContent[] array = new IMDegreeContent[content.size()];
return ((IMDegreeContent[])content.toArray(array));
}
/**
* Sets the IMDegreeContent property <b>content</b>.
*
* @param content
*/
public final void setContent(IMDegreeContent[] content) {
this.content.clear();
this.content.addAll(java.util.Arrays.asList(content));
for (int i = 0;i < content.length;i++) {
content[i].setParentRNode(this);
}
}
/**
* Sets the IMDegreeContent property <b>content</b>.
*
* @param content
*/
public final void setContent(IMDegreeContent content) {
this.content.clear();
this.content.add(content);
content.setParentRNode(this);
}
/**
* Adds the IMDegreeContent property <b>content</b>.
*
* @param content
*/
public final void addContent(IMDegreeContent content) {
this.content.add(content);
content.setParentRNode(this);
}
/**
* Accepts the Visitor for enter behavior.
*
* @param visitor
*/
public void enter(IRVisitor visitor) {
visitor.enter(this);
}
/**
* Accepts the Visitor for leave behavior.
*
* @param visitor
*/
public void leave(IRVisitor visitor) {
visitor.leave(this);
}
/**
* Gets the IRNode property <b>parentRNode</b>.
*
* @return IRNode
*/
public final IRNode getParentRNode() {
return (parentRNode);
}
/**
* Sets the IRNode property <b>parentRNode</b>.
*
* @param parentRNode
*/
public final void setParentRNode(IRNode parentRNode) {
this.parentRNode = parentRNode;
}
/**
* Gets child RNodes.
*
* @return IRNode[]
*/
public IRNode[] getRNodes() {
java.util.List classNodes = new java.util.ArrayList();
classNodes.addAll(content);
IRNode[] nodes = new IRNode[classNodes.size()];
return ((IRNode[])classNodes.toArray(nodes));
}
/**
* Tests if a Element <code>element</code> is valid
* for the <code>MDegree</code>.
*
* @param element
* @return boolean
*/
public static boolean isMatch(Element element) {
if (!URelaxer2.isTargetElement(element, "http://www.w3.org/1998/Math/MathML", "degree")) {
return (false);
}
RStack target = new RStack(element);
Element child;
while (!target.isEmptyElement()) {
if (MCi.isMatchHungry(target)) {
} else if (MCn.isMatchHungry(target)) {
} else if (MApply.isMatchHungry(target)) {
} else if (MReln.isMatchHungry(target)) {
} else if (MLambda.isMatchHungry(target)) {
} else if (MCondition.isMatchHungry(target)) {
} else if (MDeclare.isMatchHungry(target)) {
} else if (MSep.isMatchHungry(target)) {
} else if (MSemantics.isMatchHungry(target)) {
} else if (MAnnotation.isMatchHungry(target)) {
} else if (MAnnotationXml.isMatchHungry(target)) {
} else if (MInterval.isMatchHungry(target)) {
} else if (MList.isMatchHungry(target)) {
} else if (MMatrix.isMatchHungry(target)) {
} else if (MMatrixrow.isMatchHungry(target)) {
} else if (MSet.isMatchHungry(target)) {
} else if (MVector.isMatchHungry(target)) {
} else if (MLowlimit.isMatchHungry(target)) {
} else if (MUplimit.isMatchHungry(target)) {
} else if (MBvar.isMatchHungry(target)) {
} else if (MDegree.isMatchHungry(target)) {
} else if (MLogbase.isMatchHungry(target)) {
} else if (MInverse.isMatchHungry(target)) {
} else if (MIdent.isMatchHungry(target)) {
} else if (MAbs.isMatchHungry(target)) {
} else if (MConjugate.isMatchHungry(target)) {
} else if (MExp.isMatchHungry(target)) {
} else if (MFactorial.isMatchHungry(target)) {
} else if (MNot.isMatchHungry(target)) {
} else if (MLn.isMatchHungry(target)) {
} else if (MSin.isMatchHungry(target)) {
} else if (MCos.isMatchHungry(target)) {
} else if (MTan.isMatchHungry(target)) {
} else if (MSec.isMatchHungry(target)) {
} else if (MCsc.isMatchHungry(target)) {
} else if (MCot.isMatchHungry(target)) {
} else if (MSinh.isMatchHungry(target)) {
} else if (MCosh.isMatchHungry(target)) {
} else if (MTanh.isMatchHungry(target)) {
} else if (MSech.isMatchHungry(target)) {
} else if (MCsch.isMatchHungry(target)) {
} else if (MCoth.isMatchHungry(target)) {
} else if (MArcsin.isMatchHungry(target)) {
} else if (MArccos.isMatchHungry(target)) {
} else if (MArctan.isMatchHungry(target)) {
} else if (MDeterminant.isMatchHungry(target)) {
} else if (MTranspose.isMatchHungry(target)) {
} else if (MQuotient.isMatchHungry(target)) {
} else if (MDivide.isMatchHungry(target)) {
} else if (MPower.isMatchHungry(target)) {
} else if (MRem.isMatchHungry(target)) {
} else if (MImplies.isMatchHungry(target)) {
} else if (MSetdiff.isMatchHungry(target)) {
} else if (MFn.isMatchHungry(target)) {
} else if (MCompose.isMatchHungry(target)) {
} else if (MPlus.isMatchHungry(target)) {
} else if (MTimes.isMatchHungry(target)) {
} else if (MMax.isMatchHungry(target)) {
} else if (MMin.isMatchHungry(target)) {
} else if (MGcd.isMatchHungry(target)) {
} else if (MAnd.isMatchHungry(target)) {
} else if (MOr.isMatchHungry(target)) {
} else if (MXor.isMatchHungry(target)) {
} else if (MUnion.isMatchHungry(target)) {
} else if (MIntersect.isMatchHungry(target)) {
} else if (MMean.isMatchHungry(target)) {
} else if (MSdev.isMatchHungry(target)) {
} else if (MVariance.isMatchHungry(target)) {
} else if (MMedian.isMatchHungry(target)) {
} else if (MMode.isMatchHungry(target)) {
} else if (MSelector.isMatchHungry(target)) {
} else if (MRoot.isMatchHungry(target)) {
} else if (MMinus.isMatchHungry(target)) {
} else if (MLog.isMatchHungry(target)) {
} else if (MInt.isMatchHungry(target)) {
} else if (MDiff.isMatchHungry(target)) {
} else if (MPartialdiff.isMatchHungry(target)) {
} else if (MSum.isMatchHungry(target)) {
} else if (MProduct.isMatchHungry(target)) {
} else if (MLimit.isMatchHungry(target)) {
} else if (MMoment.isMatchHungry(target)) {
} else if (MExists.isMatchHungry(target)) {
} else if (MForall.isMatchHungry(target)) {
} else if (MNeq.isMatchHungry(target)) {
} else if (MIn.isMatchHungry(target)) {
} else if (MNotin.isMatchHungry(target)) {
} else if (MNotsubset.isMatchHungry(target)) {
} else if (MNotprsubset.isMatchHungry(target)) {
} else if (MTendsto.isMatchHungry(target)) {
} else if (MEq.isMatchHungry(target)) {
} else if (MLeq.isMatchHungry(target)) {
} else if (MLt.isMatchHungry(target)) {
} else if (MGeq.isMatchHungry(target)) {
} else if (MGt.isMatchHungry(target)) {
} else if (MSubset.isMatchHungry(target)) {
} else if (MPrsubset.isMatchHungry(target)) {
} else if (MMi.isMatchHungry(target)) {
} else if (MMn.isMatchHungry(target)) {
} else if (MMo.isMatchHungry(target)) {
} else if (MMtext.isMatchHungry(target)) {
} else if (MMs.isMatchHungry(target)) {
} else if (MMspace.isMatchHungry(target)) {
} else if (MMrow.isMatchHungry(target)) {
} else if (MMfrac.isMatchHungry(target)) {
} else if (MMsqrt.isMatchHungry(target)) {
} else if (MMroot.isMatchHungry(target)) {
} else if (MMstyle.isMatchHungry(target)) {
} else if (MMerror.isMatchHungry(target)) {
} else if (MMpadded.isMatchHungry(target)) {
} else if (MMphantom.isMatchHungry(target)) {
} else if (MMfenced.isMatchHungry(target)) {
} else if (MMsub.isMatchHungry(target)) {
} else if (MMsup.isMatchHungry(target)) {
} else if (MMsubsup.isMatchHungry(target)) {
} else if (MMunder.isMatchHungry(target)) {
} else if (MMover.isMatchHungry(target)) {
} else if (MMunderover.isMatchHungry(target)) {
} else if (MMmultiscripts.isMatchHungry(target)) {
} else if (MMtable.isMatchHungry(target)) {
} else if (MMtr.isMatchHungry(target)) {
} else if (MMtd.isMatchHungry(target)) {
} else if (MMaligngroup.isMatchHungry(target)) {
} else if (MMalignmark.isMatchHungry(target)) {
} else if (MMaction.isMatchHungry(target)) {
} else {
break;
}
}
if (!target.isEmptyElement()) {
return (false);
}
return (true);
}
/**
* Tests if elements contained in a Stack <code>stack</code>
* is valid for the <code>MDegree</code>.
* This mehtod is supposed to be used internally
* by the Relaxer system.
*
* @param stack
* @return boolean
*/
public static boolean isMatch(RStack stack) {
Element element = stack.peekElement();
if (element == null) {
return (false);
}
return (isMatch(element));
}
/**
* Tests if elements contained in a Stack <code>stack</code>
* is valid for the <code>MDegree</code>.
* This method consumes the stack contents during matching operation.
* This mehtod is supposed to be used internally
* by the Relaxer system.
*
* @param stack
* @return boolean
*/
public static boolean isMatchHungry(RStack stack) {
Element element = stack.peekElement();
if (element == null) {
return (false);
}
if (isMatch(element)) {
stack.popElement();
return (true);
} else {
return (false);
}
}
}