/*
* 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 java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
public final class XmlSchema extends XmlSchemaObject<XmlSchema> {
private final List<XmlSchemaImport> _imports;
private final Map<QName, XmlSchemaElement> _topLevelElements;
private final String _targetNamespace;
private final Map<QName, XmlSchemaType> _topLevelTypes;
private final Map<QName, XmlSchemaAttribute> _topLevelAttributes;
private final Map<QName, XmlSchemaGroup> _topLevelGroups;
private final Map<QName, XmlSchemaAttributeGroup> _topLevelAttributeGroups;
private final String _declaredTargetNamespace;
public XmlSchema( XmlSchemaIndex schemaIndex, LocationInfo locationInfo, List<XmlSchemaImport> imports, Map<QName, XmlSchemaElement> topLevelElements, String targetNamespace, Map<QName, XmlSchemaType> topLevelTypes, Map<QName, XmlSchemaAttribute> topLevelAttributes, Map<QName, XmlSchemaGroup> topLevelGroups, Map<QName, XmlSchemaAttributeGroup> topLevelAttributeGroups, String declaredTNS ) {
super( schemaIndex, locationInfo );
_imports = imports;
_topLevelElements = topLevelElements;
_targetNamespace = targetNamespace;
_topLevelTypes = topLevelTypes;
_topLevelAttributes = topLevelAttributes;
_topLevelGroups = topLevelGroups;
_topLevelAttributeGroups = topLevelAttributeGroups;
_declaredTargetNamespace = declaredTNS;
}
public boolean isEmpty() {
return _topLevelElements.isEmpty() && _topLevelTypes.isEmpty() && _topLevelGroups.isEmpty() && _topLevelAttributeGroups.isEmpty() && _topLevelAttributes.isEmpty();
}
public String getTargetNamespace() {
return _targetNamespace;
}
public String getDeclaredTargetNamespace() {
return _declaredTargetNamespace;
}
public Map<QName, XmlSchemaType> getTypes() {
return _topLevelTypes;
}
public Map<QName, XmlSchemaElement> getElements() {
return _topLevelElements;
}
public Map<QName, XmlSchemaAttribute> getAttributes() {
return _topLevelAttributes;
}
public Map<QName, XmlSchemaGroup> getGroups() {
return _topLevelGroups;
}
public Map<QName, XmlSchemaAttributeGroup> getAttributeGroups() {
return _topLevelAttributeGroups;
}
public List<XmlSchemaImport> getImports() {
return _imports;
}
public XmlSchema copy( XmlSchemaIndex schemaIndex ) {
return new XmlSchema( schemaIndex, getLocationInfo(), copyList( schemaIndex, _imports ), copyMap( schemaIndex, _topLevelElements ), _targetNamespace, copyMap( schemaIndex, _topLevelTypes ), copyMap( schemaIndex, _topLevelAttributes ), copyMap( schemaIndex, _topLevelGroups ), copyMap( schemaIndex, _topLevelAttributeGroups ), _declaredTargetNamespace );
}
}