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

org.ikasan.marshaller.xml.XmlJsonMarshaller Maven / Gradle / Ivy

Go to download

XML marshallers and xml-related marshaller implementations for the Ikasan Enterprise Integration Platform

There is a newer version: 4.0.2
Show newest version
/*
* $Id$
* $URL$
*
* ====================================================================
* Ikasan Enterprise Integration Platform
*
* Distributed under the Modified BSD License.
* Copyright notice: The copyright for this software and a full listing
* of individual contributors are as shown in the packaged copyright.txt
* file.
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
*  - Redistributions of source code must retain the above copyright notice,
*    this list of conditions and the following disclaimer.
*
*  - Redistributions in binary form must reproduce the above copyright notice,
*    this list of conditions and the following disclaimer in the documentation
*    and/or other materials provided with the distribution.
*
*  - Neither the name of the ORGANIZATION nor the names of its contributors may
*    be used to endorse or promote products derived from this software without
*    specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* ====================================================================
*/
package org.ikasan.marshaller.xml;

import net.sf.json.JSON;
import net.sf.json.xml.XMLSerializer;
import org.ikasan.marshaller.ConfiguredSerialiser;

/**
 * Abstract class supporting the marshalling of XML to/from JSON.
 * @author Ikasan Development Team.
 */
public abstract class XmlJsonMarshaller implements ConfiguredSerialiser
{
    /** thread-safe serialiser instance */
    protected XMLSerializer xmlSerialiser;

    /** marshaller encoding */
    protected String encoding;

    /**
     * Constructor
     * @param xmlSerialiser
     */
    public XmlJsonMarshaller(XMLSerializer xmlSerialiser)
    {
        this.xmlSerialiser = xmlSerialiser;
        if(xmlSerialiser == null)
        {
            throw new IllegalArgumentException("xmlSerialiser cannot be 'null'");
        }
    }

    /**
     * Unmarshall the incoming JSON instance into an XML string.
     * If encoding is set on this class then that is applied when
     * generating the resulting XML.
     * @param json
     * @return
     */
    public String unmarshall(JSON json)
    {
        if(this.encoding == null)
        {
            return xmlSerialiser.write(json);
        }
        else
        {
            return xmlSerialiser.write(json, this.encoding);
        }
    }

    public void setSerialiser(XMLSerializer xmlSerialiser)
    {
        this.xmlSerialiser = xmlSerialiser;
    }

    public XMLSerializer getSerialiser()
    {
        return this.xmlSerialiser;
    }

    public String getEncoding()
    {
        return this.encoding;
    }

    public void setEncoding(String encoding)
    {
        this.encoding = encoding;
    }}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy