/* * Copyright 2013 Guidewire Software, Inc. */ package gw.internal.xml.xsd.typeprovider.schemaparser; import gw.internal.xml.xsd.typeprovider.LocationMap; import gw.internal.xml.xsd.typeprovider.XmlSchemaIndex; import gw.lang.reflect.LocationInfo; import gw.xml.XmlElement; import java.util.HashMap; import java.util.Map; import javax.xml.namespace.QName; import java.net.URL; import java.util.HashSet; import java.util.Set; public class XmlSchemaParseContext { private final Map<QName, QName> _redefinedTypes = new HashMap<QName, QName>(); private final Map<QName, QName> _redefinedGroups = new HashMap<QName, QName>(); private final Map<QName, QName> _redefinedAttributeGroups = new HashMap<QName, QName>(); private final Set<URL> _alreadyIncludedSchemas = new HashSet<URL>(); private int _nextRedefineNumber; private LocationMap _locationMap; public Map<QName, QName> getRedefinedTypes() { return _redefinedTypes; } public Map<QName, QName> getRedefinedGroups() { return _redefinedGroups; } public Map<QName, QName> getRedefinedAttributeGroups() { return _redefinedAttributeGroups; } public String getNextRedefineName() { return XmlSchemaIndex.REDEFINE_PREFIX + _nextRedefineNumber++; } public boolean isSchemaAlreadyIncluded( URL url ) { return _alreadyIncludedSchemas.contains( url ); } public boolean pushIncludedSchema( URL url ) { return ! _alreadyIncludedSchemas.add( url ); } public void popIncludedSchema( URL url ) { _alreadyIncludedSchemas.remove( url ); } public void setLocationMap( LocationMap locationMap ) { _locationMap = locationMap; } public LocationMap getLocationMap() { return _locationMap; } }