/**
 * rigid_constraintType.java
 *
 * This file was generated by XMLSpy 2007sp2 Enterprise Edition.
 *
 * YOU SHOULD NOT MODIFY THIS FILE, BECAUSE IT WILL BE
 * OVERWRITTEN WHEN YOU RE-RUN CODE GENERATION.
 *
 * Refer to the XMLSpy Documentation for further details.
 * http://www.altova.com/xmlspy
 */


package com.jmex.model.collada.schema;

import com.jmex.xml.types.SchemaNCName;

public class rigid_constraintType extends com.jmex.xml.xml.Node {

	public rigid_constraintType(rigid_constraintType node) {
		super(node);
	}

	public rigid_constraintType(org.w3c.dom.Node node) {
		super(node);
	}

	public rigid_constraintType(org.w3c.dom.Document doc) {
		super(doc);
	}

	public rigid_constraintType(com.jmex.xml.xml.Document doc, String namespaceURI, String prefix, String name) {
		super(doc, namespaceURI, prefix, name);
	}
	
	public void adjustPrefix() {
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Attribute, null, "sid" );
				tmpNode != null;
				tmpNode = getDomNextChild( Attribute, null, "sid", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, false);
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Attribute, null, "name" );
				tmpNode != null;
				tmpNode = getDomNextChild( Attribute, null, "name", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, false);
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment" );
				tmpNode != null;
				tmpNode = getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, true);
			new ref_attachmentType(tmpNode).adjustPrefix();
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment" );
				tmpNode != null;
				tmpNode = getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, true);
			new attachmentType(tmpNode).adjustPrefix();
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common" );
				tmpNode != null;
				tmpNode = getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, true);
			new technique_commonType8(tmpNode).adjustPrefix();
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique" );
				tmpNode != null;
				tmpNode = getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, true);
			new techniqueType5(tmpNode).adjustPrefix();
		}
		for (	org.w3c.dom.Node tmpNode = getDomFirstChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "extra" );
				tmpNode != null;
				tmpNode = getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "extra", tmpNode )
			) {
			internalAdjustPrefix(tmpNode, true);
			new extraType(tmpNode).adjustPrefix();
		}
	}
	public void setXsiType() {
 		org.w3c.dom.Element el = (org.w3c.dom.Element) domNode;
		el.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:type", "rigid_constraint");
	}

	public static int getsidMinCount() {
		return 1;
	}

	public static int getsidMaxCount() {
		return 1;
	}

	public int getsidCount() {
		return getDomChildCount(Attribute, null, "sid");
	}

	public boolean hassid() {
		return hasDomChild(Attribute, null, "sid");
	}

	public SchemaNCName newsid() {
		return new SchemaNCName();
	}

	public SchemaNCName getsidAt(int index) throws Exception {
		return new SchemaNCName(getDomNodeValue(getDomChildAt(Attribute, null, "sid", index)));
	}

	public org.w3c.dom.Node getStartingsidCursor() throws Exception {
		return getDomFirstChild(Attribute, null, "sid" );
	}

	public org.w3c.dom.Node getAdvancedsidCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Attribute, null, "sid", curNode );
	}

	public SchemaNCName getsidValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new SchemaNCName(getDomNodeValue(curNode));
	}

	public SchemaNCName getsid() throws Exception 
 {
		return getsidAt(0);
	}

	public void removesidAt(int index) {
		removeDomChildAt(Attribute, null, "sid", index);
	}

	public void removesid() {
		removesidAt(0);
	}

	public org.w3c.dom.Node addsid(SchemaNCName value) {
		if( value.isNull() )
			return null;

		return  appendDomChild(Attribute, null, "sid", value.toString());
	}

	public org.w3c.dom.Node addsid(String value) throws Exception {
		return addsid(new SchemaNCName(value));
	}

	public void insertsidAt(SchemaNCName value, int index) {
		insertDomChildAt(Attribute, null, "sid", index, value.toString());
	}

	public void insertsidAt(String value, int index) throws Exception {
		insertsidAt(new SchemaNCName(value), index);
	}

	public void replacesidAt(SchemaNCName value, int index) {
		replaceDomChildAt(Attribute, null, "sid", index, value.toString());
	}

	public void replacesidAt(String value, int index) throws Exception {
		replacesidAt(new SchemaNCName(value), index);
	}

	public static int getnameMinCount() {
		return 0;
	}

	public static int getnameMaxCount() {
		return 1;
	}

	public int getnameCount() {
		return getDomChildCount(Attribute, null, "name");
	}

	public boolean hasname() {
		return hasDomChild(Attribute, null, "name");
	}

	public SchemaNCName newname() {
		return new SchemaNCName();
	}

	public SchemaNCName getnameAt(int index) throws Exception {
		return new SchemaNCName(getDomNodeValue(getDomChildAt(Attribute, null, "name", index)));
	}

	public org.w3c.dom.Node getStartingnameCursor() throws Exception {
		return getDomFirstChild(Attribute, null, "name" );
	}

	public org.w3c.dom.Node getAdvancednameCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Attribute, null, "name", curNode );
	}

	public SchemaNCName getnameValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new SchemaNCName(getDomNodeValue(curNode));
	}

	public SchemaNCName getname() throws Exception 
 {
		return getnameAt(0);
	}

	public void removenameAt(int index) {
		removeDomChildAt(Attribute, null, "name", index);
	}

	public void removename() {
		removenameAt(0);
	}

	public org.w3c.dom.Node addname(SchemaNCName value) {
		if( value.isNull() )
			return null;

		return  appendDomChild(Attribute, null, "name", value.toString());
	}

	public org.w3c.dom.Node addname(String value) throws Exception {
		return addname(new SchemaNCName(value));
	}

	public void insertnameAt(SchemaNCName value, int index) {
		insertDomChildAt(Attribute, null, "name", index, value.toString());
	}

	public void insertnameAt(String value, int index) throws Exception {
		insertnameAt(new SchemaNCName(value), index);
	}

	public void replacenameAt(SchemaNCName value, int index) {
		replaceDomChildAt(Attribute, null, "name", index, value.toString());
	}

	public void replacenameAt(String value, int index) throws Exception {
		replacenameAt(new SchemaNCName(value), index);
	}

	public static int getref_attachmentMinCount() {
		return 1;
	}

	public static int getref_attachmentMaxCount() {
		return 1;
	}

	public int getref_attachmentCount() {
		return getDomChildCount(Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment");
	}

	public boolean hasref_attachment() {
		return hasDomChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment");
	}

	public ref_attachmentType newref_attachment() {
		return new ref_attachmentType(domNode.getOwnerDocument().createElementNS("http://www.collada.org/2005/11/COLLADASchema", "ref_attachment"));
	}

	public ref_attachmentType getref_attachmentAt(int index) throws Exception {
		return new ref_attachmentType(getDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", index));
	}

	public org.w3c.dom.Node getStartingref_attachmentCursor() throws Exception {
		return getDomFirstChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment" );
	}

	public org.w3c.dom.Node getAdvancedref_attachmentCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", curNode );
	}

	public ref_attachmentType getref_attachmentValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new ref_attachmentType(curNode);
	}

	public ref_attachmentType getref_attachment() throws Exception 
 {
		return getref_attachmentAt(0);
	}

	public void removeref_attachmentAt(int index) {
		removeDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", index);
	}

	public void removeref_attachment() {
		removeref_attachmentAt(0);
	}

	public org.w3c.dom.Node addref_attachment(ref_attachmentType value) {
		return appendDomElement("http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", value);
	}

	public void insertref_attachmentAt(ref_attachmentType value, int index) {
		insertDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", index, value);
	}

	public void replaceref_attachmentAt(ref_attachmentType value, int index) {
		replaceDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "ref_attachment", index, value);
	}

	public static int getattachmentMinCount() {
		return 1;
	}

	public static int getattachmentMaxCount() {
		return 1;
	}

	public int getattachmentCount() {
		return getDomChildCount(Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment");
	}

	public boolean hasattachment() {
		return hasDomChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment");
	}

	public attachmentType newattachment() {
		return new attachmentType(domNode.getOwnerDocument().createElementNS("http://www.collada.org/2005/11/COLLADASchema", "attachment"));
	}

	public attachmentType getattachmentAt(int index) throws Exception {
		return new attachmentType(getDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment", index));
	}

	public org.w3c.dom.Node getStartingattachmentCursor() throws Exception {
		return getDomFirstChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment" );
	}

	public org.w3c.dom.Node getAdvancedattachmentCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment", curNode );
	}

	public attachmentType getattachmentValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new attachmentType(curNode);
	}

	public attachmentType getattachment() throws Exception 
 {
		return getattachmentAt(0);
	}

	public void removeattachmentAt(int index) {
		removeDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "attachment", index);
	}

	public void removeattachment() {
		removeattachmentAt(0);
	}

	public org.w3c.dom.Node addattachment(attachmentType value) {
		return appendDomElement("http://www.collada.org/2005/11/COLLADASchema", "attachment", value);
	}

	public void insertattachmentAt(attachmentType value, int index) {
		insertDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "attachment", index, value);
	}

	public void replaceattachmentAt(attachmentType value, int index) {
		replaceDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "attachment", index, value);
	}

	public static int gettechnique_commonMinCount() {
		return 1;
	}

	public static int gettechnique_commonMaxCount() {
		return 1;
	}

	public int gettechnique_commonCount() {
		return getDomChildCount(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common");
	}

	public boolean hastechnique_common() {
		return hasDomChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common");
	}

	public technique_commonType8 newtechnique_common() {
		return new technique_commonType8(domNode.getOwnerDocument().createElementNS("http://www.collada.org/2005/11/COLLADASchema", "technique_common"));
	}

	public technique_commonType8 gettechnique_commonAt(int index) throws Exception {
		return new technique_commonType8(getDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common", index));
	}

	public org.w3c.dom.Node getStartingtechnique_commonCursor() throws Exception {
		return getDomFirstChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common" );
	}

	public org.w3c.dom.Node getAdvancedtechnique_commonCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common", curNode );
	}

	public technique_commonType8 gettechnique_commonValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new technique_commonType8(curNode);
	}

	public technique_commonType8 gettechnique_common() throws Exception 
 {
		return gettechnique_commonAt(0);
	}

	public void removetechnique_commonAt(int index) {
		removeDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique_common", index);
	}

	public void removetechnique_common() {
		removetechnique_commonAt(0);
	}

	public org.w3c.dom.Node addtechnique_common(technique_commonType8 value) {
		return appendDomElement("http://www.collada.org/2005/11/COLLADASchema", "technique_common", value);
	}

	public void inserttechnique_commonAt(technique_commonType8 value, int index) {
		insertDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "technique_common", index, value);
	}

	public void replacetechnique_commonAt(technique_commonType8 value, int index) {
		replaceDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "technique_common", index, value);
	}

	public static int gettechniqueMinCount() {
		return 0;
	}

	public static int gettechniqueMaxCount() {
		return Integer.MAX_VALUE;
	}

	public int gettechniqueCount() {
		return getDomChildCount(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique");
	}

	public boolean hastechnique() {
		return hasDomChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique");
	}

	public techniqueType5 newtechnique() {
		return new techniqueType5(domNode.getOwnerDocument().createElementNS("http://www.collada.org/2005/11/COLLADASchema", "technique"));
	}

	public techniqueType5 gettechniqueAt(int index) throws Exception {
		return new techniqueType5(getDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique", index));
	}

	public org.w3c.dom.Node getStartingtechniqueCursor() throws Exception {
		return getDomFirstChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique" );
	}

	public org.w3c.dom.Node getAdvancedtechniqueCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "technique", curNode );
	}

	public techniqueType5 gettechniqueValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new techniqueType5(curNode);
	}

	public techniqueType5 gettechnique() throws Exception 
 {
		return gettechniqueAt(0);
	}

	public void removetechniqueAt(int index) {
		removeDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "technique", index);
	}

	public void removetechnique() {
		while (hastechnique())
			removetechniqueAt(0);
	}

	public org.w3c.dom.Node addtechnique(techniqueType5 value) {
		return appendDomElement("http://www.collada.org/2005/11/COLLADASchema", "technique", value);
	}

	public void inserttechniqueAt(techniqueType5 value, int index) {
		insertDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "technique", index, value);
	}

	public void replacetechniqueAt(techniqueType5 value, int index) {
		replaceDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "technique", index, value);
	}

	public static int getextraMinCount() {
		return 0;
	}

	public static int getextraMaxCount() {
		return Integer.MAX_VALUE;
	}

	public int getextraCount() {
		return getDomChildCount(Element, "http://www.collada.org/2005/11/COLLADASchema", "extra");
	}

	public boolean hasextra() {
		return hasDomChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "extra");
	}

	public extraType newextra() {
		return new extraType(domNode.getOwnerDocument().createElementNS("http://www.collada.org/2005/11/COLLADASchema", "extra"));
	}

	public extraType getextraAt(int index) throws Exception {
		return new extraType(getDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "extra", index));
	}

	public org.w3c.dom.Node getStartingextraCursor() throws Exception {
		return getDomFirstChild(Element, "http://www.collada.org/2005/11/COLLADASchema", "extra" );
	}

	public org.w3c.dom.Node getAdvancedextraCursor( org.w3c.dom.Node curNode ) throws Exception {
		return getDomNextChild( Element, "http://www.collada.org/2005/11/COLLADASchema", "extra", curNode );
	}

	public extraType getextraValueAtCursor( org.w3c.dom.Node curNode ) throws Exception {
		if( curNode == null )
			throw new com.jmex.xml.xml.XmlException("Out of range");
		else
			return new extraType(curNode);
	}

	public extraType getextra() throws Exception 
 {
		return getextraAt(0);
	}

	public void removeextraAt(int index) {
		removeDomChildAt(Element, "http://www.collada.org/2005/11/COLLADASchema", "extra", index);
	}

	public void removeextra() {
		while (hasextra())
			removeextraAt(0);
	}

	public org.w3c.dom.Node addextra(extraType value) {
		return appendDomElement("http://www.collada.org/2005/11/COLLADASchema", "extra", value);
	}

	public void insertextraAt(extraType value, int index) {
		insertDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "extra", index, value);
	}

	public void replaceextraAt(extraType value, int index) {
		replaceDomElementAt("http://www.collada.org/2005/11/COLLADASchema", "extra", index, value);
	}

}
