All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sourceprojects.xmlparser.internal.EntityResolverImpl Maven / Gradle / Ivy

/*
 * 
 *  This file is part of XmlParser.
 *
 *  Foobar is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  Foobar 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 General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with Foobar.  If not, see .
 *
 */
package org.sourceprojects.xmlparser.internal;

import java.io.IOException;

import org.sourceprojects.xmlparser.ResourceResolver;
import org.w3c.dom.ls.LSInput;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.ext.EntityResolver2;

/**
 * 
 * @author noctarius
 * @since 0.0.1
 */
public class EntityResolverImpl implements EntityResolver2 {
	private final ResourceResolver resourceResolver;
	
	public EntityResolverImpl(ResourceResolver resourceResolver) {
		this.resourceResolver = resourceResolver;
	}
	
	@Override
	public InputSource resolveEntity(String publicId, String systemId)
			throws SAXException, IOException {
		LSInput input = resourceResolver.resolveResource(null, null, publicId, systemId, null);
		
		if (input != null && input.getByteStream() != null)
			return new InputSource(input.getByteStream());

		return null;
	}

	@Override
	public InputSource getExternalSubset(String name, String baseURI)
			throws SAXException, IOException {
		return null;
	}

	@Override
	public InputSource resolveEntity(String name, String publicId,
			String baseURI, String systemId) throws SAXException, IOException {
		return resolveEntity(publicId, systemId);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy