/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.xml.xsd.typeprovider.xmlmatcher; import gw.internal.xml.xsd.typeprovider.schema.XmlSchemaCollection; import gw.internal.xml.xsd.typeprovider.schema.XmlSchemaParticle; import gw.internal.xml.xsd.typeprovider.schema.XmlSchemaSequence; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; public class XmlSchemaSequenceMatchHandler extends XmlMatchHandler { private XmlSchemaSequence _sequence; private List<XmlMatchHandler> _matchHandlers; public XmlSchemaSequenceMatchHandler( XmlSchemaSequence sequence ) { _sequence = sequence; } @Override public void match( QName elementName, XmlSchemaCollection collection ) { if ( _matchHandlers == null ) { _matchHandlers = new ArrayList<XmlMatchHandler>( _sequence.getItems().size() ); for ( XmlSchemaParticle particle : _sequence.getItems() ) { _matchHandlers.add( XmlMatchHandler.getMatchHandler( particle ) ); } } for ( XmlMatchHandler matchHandler : _matchHandlers ) { matchHandler.match( elementName, collection ); } } }