/** * Retrieves a new Result for setting the XML value designated by this * SQLXML instance. * * @param resultClass The class of the result, or null. * @throws java.sql.SQLException if there is an error processing the XML * value or the state is not writable * @return for setting the XML value designated by this SQLXML instance. */ protected <T extends Result>T createResult( Class<T> resultClass) throws SQLException { checkWritable(); setWritable(false); setReadable(true); if (JAXBResult.class.isAssignableFrom(resultClass)) { // Must go first presently, since JAXBResult extends SAXResult // (purely as an implmentation detail) and it's not possible // to instantiate a valid JAXBResult with a Zero-Args // constructor(or any subclass thereof, due to the finality of // its private UnmarshallerHandler) // FALL THROUGH... will throw an exception } else if ((resultClass == null) || StreamResult.class.isAssignableFrom(resultClass)) { return createStreamResult(resultClass); } else if (DOMResult.class.isAssignableFrom(resultClass)) { return createDOMResult(resultClass); } else if (SAXResult.class.isAssignableFrom(resultClass)) { return createSAXResult(resultClass); } else if (StAXResult.class.isAssignableFrom(resultClass)) { return createStAXResult(resultClass); } throw JDBCUtil.invalidArgument("resultClass: " + resultClass); }
@Override public <T> T readPayloadAsJAXB(Unmarshaller unmarshaller) throws JAXBException { JAXBResult out = new JAXBResult(unmarshaller); // since the bridge only produces fragments, we need to fire start/end document. try { out.getHandler().startDocument(); if (rawContext != null) { Marshaller m = rawContext.createMarshaller(); m.setProperty("jaxb.fragment", Boolean.TRUE); m.marshal(jaxbObject,out); } else bridge.marshal(jaxbObject,out); out.getHandler().endDocument(); } catch (SAXException e) { throw new JAXBException(e); } return (T)out.getResult(); }
private T getJAXBObject(MCRContent source, XMLReader reader, TransformerHandler transformerHandler) throws JAXBException, IOException, SAXException { checkContext(); JAXBResult result = new JAXBResult(context); transformerHandler.setResult(result); // Parse the source XML, and send the parse events to the // TransformerHandler. reader.parse(source.getInputSource()); Object parsedResult = result.getResult(); if (parsedResult instanceof JAXBElement<?>) { @SuppressWarnings("unchecked") JAXBElement<T> jaxbElement = (JAXBElement<T>) parsedResult; return jaxbElement.getValue(); } @SuppressWarnings("unchecked") T jaxbResult = (T) result.getResult(); return jaxbResult; }
/** * Does TTML document transformation to another TTML document. * * @param tt source TTML document root element * @param transformer transformer * @return TTML document after transformation */ public static TtEltype transformTtmlDocument(TtEltype tt, Transformer transformer) { JAXBElement<TtEltype> ttJaxb = new ObjectFactory().createTt(tt); try { JAXBContext jaxbc = createTtmlJaxbContext(); JAXBSource source = new JAXBSource(jaxbc, ttJaxb); JAXBResult result = new JAXBResult(jaxbc); // transform transformer.transform(source, result); return (TtEltype) ((JAXBElement<TtEltype>) result.getResult()).getValue(); } catch (JAXBException | TransformerException e) { throw new ConvertException(e); } }
@Deprecated public void write(DigitalObjectHandler handler, ModsDefinition mods, String model, long timestamp, String message) throws DigitalObjectException { try { JAXBSource jaxbSource = new JAXBSource(ModsUtils.defaultMarshaller(false), new cz.cas.lib.proarc.mods.ObjectFactory().createMods(mods)); // DO NOT include schemaLocation. Fedora validator does not accept it. Transformer t = DcUtils.modsTransformer(model); EditorResult result = editor.createResult(); JAXBResult jaxbResult = new JAXBResult(DcUtils.defaultUnmarshaller()); t.transform(jaxbSource, jaxbResult); JAXBElement<OaiDcType> elm = (JAXBElement<OaiDcType>) jaxbResult.getResult(); OaiDcType dc = elm.getValue(); addDigitalObjectMetadata(handler, dc); DcUtils.marshal(result, dc, false); editor.write(result, timestamp, message); } catch (TransformerException | JAXBException ex) { throw new DigitalObjectException(object.getPid(), ex); } }
/** * Retrieves a new Result for setting the XML value designated by this * SQLXML instance. * * @param resultClass The class of the result, or null. * @throws java.sql.SQLException if there is an error processing the XML * value or the state is not writable * @return for setting the XML value designated by this SQLXML instance. */ protected <T extends Result>T createResult( Class<T> resultClass) throws SQLException { checkWritable(); setWritable(false); setReadable(true); if (JAXBResult.class.isAssignableFrom(resultClass)) { // Must go first presently, since JAXBResult extends SAXResult // (purely as an implementation detail) and it's not possible // to instantiate a valid JAXBResult with a Zero-Args // constructor(or any subclass thereof, due to the finality of // its private UnmarshallerHandler) // FALL THROUGH... will throw an exception } else if ((resultClass == null) || StreamResult.class.isAssignableFrom(resultClass)) { return createStreamResult(resultClass); } else if (DOMResult.class.isAssignableFrom(resultClass)) { return createDOMResult(resultClass); } else if (SAXResult.class.isAssignableFrom(resultClass)) { return createSAXResult(resultClass); } else if (StAXResult.class.isAssignableFrom(resultClass)) { return createStAXResult(resultClass); } throw JDBCUtil.invalidArgument("resultClass: " + resultClass); }
/** * Retrieves a new Result for setting the XML value designated by this * SQLXML instance. * * @param resultClass The class of the result, or null. * @throws java.sql.SQLException if there is an error processing the XML * value or the state is not writable * @return for setting the XML value designated by this SQLXML instance. */ protected <T extends Result>T createResult( Class<T> resultClass) throws SQLException { checkWritable(); setWritable(false); setReadable(true); if (JAXBResult.class.isAssignableFrom(resultClass)) { // Must go first presently, since JAXBResult extends SAXResult // (purely as an implmentation detail) and it's not possible // to instantiate a valid JAXBResult with a Zero-Args // constructor(or any subclass thereof, due to the finality of // its private UnmarshallerHandler) // FALL THROUGH... will throw an exception } else if ((resultClass == null) || StreamResult.class.isAssignableFrom(resultClass)) { return createStreamResult(resultClass); } else if (DOMResult.class.isAssignableFrom(resultClass)) { return createDOMResult(resultClass); } else if (SAXResult.class.isAssignableFrom(resultClass)) { return createSAXResult(resultClass); } else if (StAXResult.class.isAssignableFrom(resultClass)) { return createStAXResult(resultClass); } throw Util.invalidArgument("resultClass: " + resultClass); }
public <T> T readAsJAXB(Unmarshaller unmarshaller) throws JAXBException { try { JAXBResult r = new JAXBResult(unmarshaller); // bridge marshals a fragment, so we need to add start/endDocument by ourselves r.getHandler().startDocument(); bridge.marshal(jaxbObject,r); r.getHandler().endDocument(); return (T)r.getResult(); } catch (SAXException e) { throw new JAXBException(e); } }
public static JavaWsdlMappingType transformAndRead(Source src, boolean disableXmlSecurity) throws TransformerException, JAXBException { Source xsl = new StreamSource(Util.class.getResourceAsStream(TRANSLATE_NAMESPACES_XSL)); JAXBResult result = new JAXBResult(jaxbContext(disableXmlSecurity)); TransformerFactory tf = XmlUtil.newTransformerFactory(!disableXmlSecurity); Transformer transformer = tf.newTemplates(xsl).newTransformer(); transformer.transform(src, result); return getJavaWsdlMapping(result.getResult()); }
public static <T> T transformToObject(File file, final String xslID, Class<T> targetClass, Class<?>... nestedClasses) throws TransformerException, SAXException, IOException, ParserConfigurationException, JAXBException{ JAXBContext jc = createJAXBContext(merge(targetClass, nestedClasses)); JAXBResult result = new JAXBResult(jc); XslTransformer.transform(file, xslID, result); // obtain the unmarshalled content tree @SuppressWarnings("unchecked") T object = (T) result.getResult(); return object; }
public static <T> T transformToObject(File file, final String xslID, Map<String, Object> xslParams, Class<T> targetClass, Class<?>... nestedClasses) throws TransformerException, SAXException, IOException, ParserConfigurationException, JAXBException{ JAXBContext jc = createJAXBContext(merge(targetClass, nestedClasses)); JAXBResult result = new JAXBResult(jc); XslTransformer.transform(file, xslID, result, xslParams); // obtain the unmarshalled content tree @SuppressWarnings("unchecked") T object = (T) result.getResult(); return object; }
private static JAXBResult xsltTransform(Unmarshaller unmarshaller, Document document) throws JAXBException, TransformerException, TransformerConfigurationException, TransformerFactoryConfigurationError { JAXBResult result = new JAXBResult(unmarshaller); StreamSource source = new StreamSource( GpxUnmarshaller.class .getResourceAsStream("/data/gpx/xsl/gpx10to11.xsl")); TransformerFactory.newInstance().newTransformer(source) .transform(new DOMSource(document), result); return result; }
public <T> T readPayloadAsJAXB(Unmarshaller unmarshaller) throws JAXBException { JAXBResult out = new JAXBResult(unmarshaller); // since the bridge only produces fragments, we need to fire start/end document. try { out.getHandler().startDocument(); bridge.marshal(jaxbObject,out); out.getHandler().endDocument(); } catch (SAXException e) { throw new JAXBException(e); } return (T)out.getResult(); }