Example usage for javax.xml.transform URIResolver getClass

List of usage examples for javax.xml.transform URIResolver getClass

Introduction

In this page you can find the example usage for javax.xml.transform URIResolver getClass.

Prototype

@HotSpotIntrinsicCandidate
public final native Class<?> getClass();

Source Link

Document

Returns the runtime class of this Object .

Usage

From source file:it.tidalwave.northernwind.core.impl.filter.XsltMacroFilter.java

/*******************************************************************************************************************
 *
 ******************************************************************************************************************/
@Nonnull/*w  w  w.  jav  a2 s .  co m*/
private Transformer createTransformer() throws TransformerConfigurationException {
    final Source transformation = new StreamSource(new StringReader(xslt));
    final Transformer transformer = transformerFactory.newTransformer(transformation);

    try {
        final URIResolver uriResolver = context.getBean(URIResolver.class);
        log.trace("Using URIResolver: {}", uriResolver.getClass());
        transformer.setURIResolver(uriResolver);
    } catch (NoSuchBeanDefinitionException e) {
        // ok, not installed
    }

    return transformer;
}

From source file:org.ikasan.filetransfer.xml.transform.DefaultXSLTransformer.java

/**
 * Creates a new <code>URIResolver</code> instance
 * (if not already created) that maps each URI to its corresponding
 * XML document./*  w  w  w.  jav a  2s . c  om*/
 * This allows us to access any xml documents loaded in memory
 * by referring to corresponding URIs in a stylesheet later
 * using <code>xsl:include</code> or <code>xsl:import</code> or
 * <code>document()</code> function.
 * This method is called from <code>transform()</code> method.
 *
 * @param resolverMap - the mapping table containing a set of
 *                      URI-to-XML mappings.
 */
public void setURIResolver(Map<String, Source> resolverMap) {
    if (resolverMap == null || resolverMap.isEmpty())
        return;

    // Operation error, possibly setURIResolver() method has been called
    // with different implementation of URIResolver
    URIResolver resolver = this.transformer.getURIResolver();
    if ((resolver != null) && !(resolver instanceof DefaultURIResolver)) {
        throw new IllegalArgumentException("Operation error! "
                + "The following URIResolver instance has been already set to " + "this transformer '"
                + resolver.getClass().getName() + "'." + "Ensure to call either setURIResolver(URIResolver) or "
                + "setURIResolver(Map)/setURIResolver(String, Source) method");
    }

    DefaultURIResolver uriResolver = (resolver == null) ? new DefaultURIResolver()
            : (DefaultURIResolver) this.transformer.getURIResolver();

    // Grab each URI and its corresponding source object
    // (that is representing XML document)
    // then register the mapping through URIResolver
    String uri = null;
    Source xmlSource = null;
    for (Map.Entry<String, Source> entry : resolverMap.entrySet()) {
        uri = entry.getKey();
        if (uri == null || uri.trim().length() == 0) {
            logger.warn("URI is null or empty, skipping...");
            continue;
        }

        xmlSource = entry.getValue();
        if (xmlSource != null)
            uriResolver.mapURIToSource(uri, xmlSource);
        else
            logger.warn("XML source object for URI [" + uri + "] is null, skipping...");
    }

    this.transformer.setURIResolver(uriResolver);
}