/**
*
*/
package org.ebayopensource.turmeric.tools.codegen.external.wsdl.parser.schema;
import java.util.ArrayList;
import java.util.List;
import javax.xml.namespace.QName;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* @author rkulandaivel
*
*/
public class SchemaAll extends Annotation {
private List<SequenceElement> elements = new ArrayList<SequenceElement>();
private int minOccurs = -1;
private int maxOccurs = -1;
public SchemaAll(Element el, String tns) {
super(el, tns);
NodeList children = el.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
if (child.getNodeType() == Node.ELEMENT_NODE) {
Element subEl = (Element) child;
String elType = subEl.getLocalName();
if (elType.equals("element")) {
elements.add(new SequenceElement(subEl, tns));
}
}
}
QName minOccurs = SchemaType.getAttributeQName(el, "minOccurs");
if(minOccurs == null){
this.minOccurs = 1;
}else{
this.minOccurs = Integer.parseInt( minOccurs.getLocalPart() );
}
QName maxOccurs = SchemaType.getAttributeQName(el, "maxOccurs");
if(maxOccurs == null){
this.maxOccurs = 1;
}else{
if("unbounded".equals( maxOccurs.getLocalPart() ) ){
this.maxOccurs = 999999999;
}else{
this.maxOccurs = Integer.parseInt( maxOccurs.getLocalPart() );
}
}
}
public List<SequenceElement> getElements(){
return elements;
}
public int getMinOccurs(){
return minOccurs;
}
public int getMaxOccurs(){
return maxOccurs;
}
}