package com.revolsys.swing.map.layer.record.style.marker;
import java.net.URI;
import org.apache.batik.anim.dom.SAXSVGDocumentFactory;
import org.apache.batik.dom.util.DocumentFactory;
import org.apache.batik.transcoder.TranscoderInput;
import org.apache.batik.util.SVGConstants;
import org.apache.batik.util.XMLResourceDescriptor;
import org.w3c.dom.Document;
import com.revolsys.logging.Logs;
import com.revolsys.spring.resource.Resource;
import com.revolsys.util.Property;
public class SvgUtil {
private static final String PARSER_CLASS_NAME = XMLResourceDescriptor.getXMLParserClassName();
public static Document newDocument(final Object source) {
final Resource resource = Resource.getResource(source);
return newDocument(resource);
}
public static Document newDocument(final Resource resource) {
if (resource == null) {
return null;
} else {
final String uri = resource.getUriString();
return newDocument(uri);
}
}
public static Document newDocument(final String uri) {
if (Property.hasValue(uri)) {
final DocumentFactory documentFactory = new SAXSVGDocumentFactory(PARSER_CLASS_NAME);
try {
return documentFactory.createDocument(SVGConstants.SVG_NAMESPACE_URI,
SVGConstants.SVG_SVG_TAG, uri);
} catch (final Throwable e) {
Logs.debug(SvgUtil.class, PARSER_CLASS_NAME, e);
}
}
return null;
}
public static TranscoderInput newTranscodeInput(final URI uri) {
final String uriString = uri.toString();
final Document document = newDocument(uriString);
return new TranscoderInput(document);
}
}