/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.xml.xsd.typeprovider.schema;
import gw.internal.xml.xsd.typeprovider.XmlSchemaIndex;
import gw.lang.reflect.LocationInfo;
import javax.xml.namespace.QName;
public final class XmlSchemaElement extends XmlSchemaParticle<XmlSchemaElement> {
private final QName _schemaTypeName;
private final XmlSchemaType<?> _schemaType;
private final QName _substitutionGroup;
private final QName _refName;
private final QName _qname;
private final String _name;
private final boolean _nillable;
private final String _gwViewAs;
private final boolean _topLevel;
public XmlSchemaElement( XmlSchemaIndex schemaIndex, LocationInfo locationInfo, QName schemaTypeName, XmlSchemaType<?> schemaType, QName substitutionGroup, QName refName, QName qname, String name, boolean nillable, long minOccurs, long maxOccurs, String gwViewAs, boolean topLevel ) {
super( schemaIndex, locationInfo, minOccurs, maxOccurs );
_schemaTypeName = schemaTypeName;
_schemaType = schemaType;
_substitutionGroup = substitutionGroup;
_refName = refName;
_qname = qname;
_name = name;
_nillable = nillable;
_gwViewAs = gwViewAs;
_topLevel = topLevel;
}
public QName getSchemaTypeName() {
return _schemaTypeName;
}
public XmlSchemaType getSchemaType() {
return _schemaType;
}
public QName getSubstitutionGroup() {
return _substitutionGroup;
}
public QName getRefName() {
return _refName;
}
public QName getQName() {
return _qname;
}
public String getName() {
return _name;
}
public boolean isNillable() {
return _nillable;
}
public String getGwViewAs() {
return _gwViewAs;
}
@Override
public String toString() {
QName qname = getQName();
if ( qname == null ) {
qname = getRefName();
}
return qname.toString();
}
public boolean isTopLevel() {
return _topLevel;
}
@Override
public XmlSchemaElement copy( XmlSchemaIndex schemaIndex ) {
return new XmlSchemaElement( schemaIndex, getLocationInfo(), _schemaTypeName, _schemaType == null ? null : _schemaType.copy( schemaIndex ), _substitutionGroup, _refName, _qname, _name, _nillable, getMinOccurs(), getMaxOccurs(), _gwViewAs, _topLevel );
}
}