/** * Construct a JettisonMappedXmlDriver. */ public JettisonMappedXmlDriver() { this(new Configuration()); }
/** * Construct a JettisonMappedXmlDriver with configuration. This constructor has been added * by special request of Jettison users to support JSON generated by older Jettison * versions. if the driver is setup to ignore the XStream hints for JSON arrays, there is * neither support from XStream's side nor are there any tests to ensure this mode. * * @param config the Jettison configuration * @param useSerializeAsArray flag to use XStream's hints for collections and arrays * @since 1.4 */ public JettisonMappedXmlDriver(final Configuration config, final boolean useSerializeAsArray) { mof = new MappedXMLOutputFactory(config); mif = new MappedXMLInputFactory(config); convention = new MappedNamespaceConvention(config); this.useSerializeAsArray = useSerializeAsArray; }
public static XMLStreamWriter createWriter(final Writer writer, final JettisonConfig config) throws IOException { switch (config.getNotation()) { case BADGERFISH: return new BadgerFishXMLStreamWriter(writer); case MAPPED_JETTISON: Configuration jmConfig; if (null == config.getXml2JsonNs()) { jmConfig = new Configuration(); } else { jmConfig = new Configuration(config.getXml2JsonNs()); } final MappedXMLStreamWriter result = new MappedXMLStreamWriter(new MappedNamespaceConvention(jmConfig), writer); for (String array : config.getArrayElements()) { result.serializeAsArray(array); } return result; default: return null; } }
public static XMLStreamReader createReader(final Reader reader, final JettisonConfig config) throws XMLStreamException { Reader nonEmptyReader = ensureNonEmptyReader(reader); switch (config.getNotation()) { case MAPPED_JETTISON: try { Configuration jmConfig; if (null == config.getXml2JsonNs()) { jmConfig = new Configuration(); } else { jmConfig = new Configuration(config.getXml2JsonNs()); } return new MappedXMLStreamReader( new JSONObject(new JSONTokener(ReaderWriter.readFromAsString(nonEmptyReader))), new MappedNamespaceConvention(jmConfig)); } catch (Exception ex) { throw new XMLStreamException(ex); } case BADGERFISH: try { return new BadgerFishXMLStreamReader( new JSONObject(new JSONTokener(ReaderWriter.readFromAsString(nonEmptyReader)))); } catch (Exception ex) { throw new XMLStreamException(ex); } } // This should not occur throw new IllegalArgumentException("Unknown JSON config"); }
public MappedXMLOutputFactory(Configuration config) { this.convention = new MappedNamespaceConvention(config); }
public HierarchicalStreamReader createReader(final InputStream input) { try { return new StaxReader(new QNameMap(), mif.createXMLStreamReader(input), getNameCoder()); } catch (final XMLStreamException e) { throw new StreamException(e); } }
public void writeAttribute(String prefix, String ns, String local, String value) throws XMLStreamException { String key = convention.isElement(prefix, ns, local) ? convention.createKey(prefix, ns, local) : convention.createAttributeKey(prefix, ns, local); JSONPropertyString prop = new JSONPropertyString(key, null); prop.addText(value); current = current.withProperty(prop, false); }
public HierarchicalStreamWriter createWriter(final Writer writer) { try { if (useSerializeAsArray) { return new JettisonStaxWriter(new QNameMap(), mof.createXMLStreamWriter(writer), getNameCoder(), convention); } else { return new StaxWriter(new QNameMap(), mof.createXMLStreamWriter(writer), getNameCoder()); } } catch (final XMLStreamException e) { throw new StreamException(e); } }
public void writeStartElement(String prefix, String local, String ns) throws XMLStreamException { String parentKey = current.getTreeKey(); stack.push(current); String key = convention.createKey(prefix, ns, local); current = new JSONPropertyString(key, parentKey); }
public void startNode(String name, Class clazz) { XMLStreamWriter out = getXMLStreamWriter(); if (clazz != null && out instanceof AbstractXMLStreamWriter) { if (Collection.class.isAssignableFrom(clazz) || Map.class.isAssignableFrom(clazz) || clazz.isArray()) { QName qname = getQNameMap().getQName(encodeNode(name)); String prefix = qname.getPrefix(); String uri = qname.getNamespaceURI(); String key = convention.createKey(prefix, uri, qname.getLocalPart()); if (!((AbstractXMLStreamWriter)out).getSerializedAsArrays().contains(key)) { // Typo is in the API of Jettison ... ((AbstractXMLStreamWriter)out).seriliazeAsArray(key); } } } startNode(name); } }
public XMLStreamWriter createXMLStreamWriter(Writer writer) throws XMLStreamException { return new MappedXMLStreamWriter(convention, writer); } }
private String getPropertyArrayKey(JSONProperty property) { return isArrayKeysWithSlashAvailable() ? property.getTreeKey() : property.getKey(); }
public QName createQName( String rootName, Node node ) { return createQName( rootName ); }
public void writeAttribute(String local, String value) throws XMLStreamException { writeAttribute(null, local, value); }
public MappedNamespaceConvention() { super(); typeConverter = Configuration.newDefaultConverterInstance(); } public MappedNamespaceConvention(Configuration config) {
public MappedXMLStreamReader(JSONObject obj) throws JSONException, XMLStreamException { this(obj, new MappedNamespaceConvention()); }
public HierarchicalStreamReader createReader(URL in) { InputStream instream = null; try { instream = in.openStream(); return new StaxReader(new QNameMap(), mif.createXMLStreamReader( in.toExternalForm(), instream), getNameCoder()); } catch (final XMLStreamException e) { throw new StreamException(e); } catch (IOException e) { throw new StreamException(e); } finally { if (instream != null) { try { instream.close(); } catch (IOException e) { // ignore } } } }
public HierarchicalStreamWriter createWriter(final OutputStream output) { try { if (useSerializeAsArray) { return new JettisonStaxWriter(new QNameMap(), mof.createXMLStreamWriter(output), getNameCoder(), convention); } else { return new StaxWriter(new QNameMap(), mof.createXMLStreamWriter(output), getNameCoder()); } } catch (final XMLStreamException e) { throw new StreamException(e); } }
public HierarchicalStreamReader createReader(final Reader reader) { try { return new StaxReader(new QNameMap(), mif.createXMLStreamReader(reader), getNameCoder()); } catch (final XMLStreamException e) { throw new StreamException(e); } }
public HierarchicalStreamReader createReader(File in) { InputStream instream = null; try { instream = new FileInputStream(in); return new StaxReader(new QNameMap(), mif.createXMLStreamReader(in .toURI() .toASCIIString(), instream), getNameCoder()); } catch (final XMLStreamException e) { throw new StreamException(e); } catch (IOException e) { throw new StreamException(e); } finally { if (instream != null) { try { instream.close(); } catch (IOException e) { // ignore } } } }