package org.exolab.castor.xml.schema;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.castor.core.util.AbstractProperties;
import org.castor.xml.XMLProperties;
import org.exolab.castor.xml.Serializer;
import org.exolab.castor.xml.util.XMLParserUtils;
import org.xml.sax.Parser;
/**
* Represents an execution context for schema reading/writing activities.
* @author <a href="mailto:wguttmn AT codehaus DOT org">Werner Guttmann</a>
* @version $Revision: 7273 $ $Date: 2004-10-05 14:27:10 -0600 (Tue, 05 Oct 2004) $
*
* @since 1.2
*/
public class SchemaContextImpl implements SchemaContext {
/**
* {@link Log} instance used for logging.
*/
private final Log LOG = LogFactory.getLog(SchemaContextImpl.class);
private Resolver _schemaResolver;
/**
* {@link AbstractProperties} instance for retrieving property values related to XML parsers
*/
private AbstractProperties _properties;
/**
* Creates an instance of {@link SchemaContextImpl}.
*/
public SchemaContextImpl() {
super();
_properties = XMLProperties.newInstance();
}
/**
* {@inheritDoc}
* @see org.exolab.castor.xml.schema.SchemaContext#getSchemaResolver()
*/
public Resolver getSchemaResolver() {
return _schemaResolver;
}
/**
* {@inheritDoc}
* @see org.castor.xml.InternalContext#getParser(java.lang.String)
*/
public Parser getParser(final String features) {
return XMLParserUtils.getParser(_properties, features);
}
/**
* {@inheritDoc}
* @see org.exolab.castor.xml.schema.SchemaContext#setSchemaResolver(org.exolab.castor.xml.schema.Resolver)
*/
public void setSchemaResolver(Resolver resolver) {
_schemaResolver = resolver;
}
/**
* {@inheritDoc}
* @see org.exolab.castor.xml.schema.SchemaContext#getParser()
*/
public Parser getParser() {
return getParser(null);
}
/**
*{@inheritDoc}
* @see org.castor.xml.InternalContext#getSerializer()
*/
public Serializer getSerializer() {
return XMLParserUtils.getSerializer(_properties);
}
}