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

org.cloudgraph.state.StateNonValidatingDataBinding Maven / Gradle / Ivy

Go to download

CloudGraph(tm) is a suite of Service Data Object (SDO) 2.1 services designed for relational and big-table style "cloud" databases, such as HBase and others.

There is a newer version: 0.7.1
Show newest version
/**
 *        CloudGraph Community Edition (CE) License
 * 
 * This is a community release of CloudGraph, a dual-license suite of
 * Service Data Object (SDO) 2.1 services designed for relational and 
 * big-table style "cloud" databases, such as HBase and others. 
 * This particular copy of the software is released under the 
 * version 2 of the GNU General Public License. CloudGraph was developed by 
 * TerraMeta Software, Inc.
 * 
 * Copyright (c) 2013, TerraMeta Software, Inc. All rights reserved.
 * 
 * General License information can be found below.
 * 
 * This distribution may include materials developed by third
 * parties. For license and attribution notices for these
 * materials, please refer to the documentation that accompanies
 * this distribution (see the "Licenses for Third-Party Components"
 * appendix) or view the online documentation at 
 * . 
 */
package org.cloudgraph.state;

import java.io.InputStream;
import java.io.OutputStream;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;

import org.plasma.common.bind.NonValidatingUnmarshaler;
import org.xml.sax.SAXException;

/**
 * State JAXB non-validating Binding delegate. It is crucial that this binding be cached by
 * service implementations at the appropriate level to 1.) guarantee
 * thread safety (this class is NOT thread safe) and 2.) re-use the
 * underlying JAXB context and parsed schema instance(s) across as many
 * requests as possible.   
 *  
 * @author Scott Cinnamond
 * @since 0.5.2
 */
public class StateNonValidatingDataBinding implements NonValidatingDataBinding {

    private NonValidatingUnmarshaler unmarshaler;

    public static Class[] FACTORIES = { org.cloudgraph.state.ObjectFactory.class, };
        
    public StateNonValidatingDataBinding()
            throws JAXBException, SAXException {
        this.unmarshaler = new NonValidatingUnmarshaler( 
        	JAXBContext.newInstance(FACTORIES));
    }

    public Class[] getObjectFactories() {
        return FACTORIES;
    }

    /* (non-Javadoc)
	 * @see org.cloudgraph.state.NonValidatingDataBinding#marshal(java.lang.Object)
	 */
    @Override
	public String marshal(Object root) throws JAXBException {
    	
        return unmarshaler.marshal(root);
    }

    /* (non-Javadoc)
	 * @see org.cloudgraph.state.NonValidatingDataBinding#marshal(java.lang.Object, java.io.OutputStream)
	 */
    @Override
	public void marshal(Object root, OutputStream stream) throws JAXBException {
        unmarshaler.marshal(root, stream);
    }
    
    /* (non-Javadoc)
	 * @see org.cloudgraph.state.NonValidatingDataBinding#marshal(java.lang.Object, java.io.OutputStream, boolean)
	 */
    @Override
	public void marshal(Object root, OutputStream stream, boolean formattedOutput) throws JAXBException
    {
    	unmarshaler.marshal(root, stream, formattedOutput);
    }
    
    /* (non-Javadoc)
	 * @see org.cloudgraph.state.NonValidatingDataBinding#unmarshal(java.lang.String)
	 */
    @Override
	public Object unmarshal(String xml) throws JAXBException {
        return unmarshaler.unmarshal(xml);
    }

    /* (non-Javadoc)
	 * @see org.cloudgraph.state.NonValidatingDataBinding#unmarshal(java.io.InputStream)
	 */
    @Override
	public Object unmarshal(InputStream stream) throws JAXBException {
        return unmarshaler.unmarshal(stream);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy