/*
* This library is part of OpenCms -
* the Open Source Content Management System
*
* Copyright (c) Alkacon Software GmbH (http://www.alkacon.com)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* For further information about Alkacon Software GmbH, please see the
* company website: http://www.alkacon.com
*
* For further information about OpenCms, please see the
* project website: http://www.opencms.org
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.opencms.xml;
import org.opencms.xml.types.I_CmsXmlSchemaType;
import java.util.List;
/**
* Simple data structure to describe a type sequence in a XML schema.<p>
*
* @since 6.0.0
*/
class CmsXmlComplexTypeSequence {
/** Max occurs value for xsd:choice definitions. */
private int m_choiceMaxOccurs;
/** Indicates if this type sequence has a language attribute. */
private boolean m_hasLanguageAttribute;
/** The name of the complex type sequence. */
private String m_name;
/** The type sequence elements. */
private List<I_CmsXmlSchemaType> m_sequence;
/** Indicates the type of the sequence. */
private CmsXmlContentDefinition.SequenceType m_sequenceType;
/**
* Creates a new complex type sequence data structure.<p>
*
* @param name the name of the sequence
* @param sequence the type sequence element list
* @param hasLanguageAttribute indicates if a "language" attribute is present
* @param sequenceType indicates the type of the sequence
* @param choiceMaxOccurs indicated the maxOccurs value for a xsd:choice sequence
*/
protected CmsXmlComplexTypeSequence(
String name,
List<I_CmsXmlSchemaType> sequence,
boolean hasLanguageAttribute,
CmsXmlContentDefinition.SequenceType sequenceType,
int choiceMaxOccurs) {
m_name = name;
m_sequence = sequence;
m_hasLanguageAttribute = hasLanguageAttribute;
m_sequenceType = sequenceType;
m_choiceMaxOccurs = choiceMaxOccurs;
}
/**
* Returns the maxOccurs value for <code>xsd:choice</code> definitions.<p>
*
* @return the maxOccurs value for <code>xsd:choice</code> definitions
*/
public int getChoiceMaxOccurs() {
return m_choiceMaxOccurs;
}
/**
* Returns the name of the sequence.<p>
*
* @return the name of the sequence
*/
public String getName() {
return m_name;
}
/**
* Returns the type sequence element list.<p>
*
* @return the type sequence element list
*/
public List<I_CmsXmlSchemaType> getSequence() {
return m_sequence;
}
/**
* Returns the type of this sequence.<p>
*
* @return the type of this sequence
*/
public CmsXmlContentDefinition.SequenceType getSequenceType() {
return m_sequenceType;
}
/**
* Returns <code>true</code> if a "language" attribute is present in this sequence.<p>
*
* @return <code>true</code> if a "language" attribute is present in this sequence
*/
public boolean hasLanguageAttribute() {
return m_hasLanguageAttribute;
}
}