/**
* Copyright 2010 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.drools.camel.component;
import java.util.ArrayList;
import java.util.List;
import org.apache.camel.model.dataformat.XStreamDataFormat;
import org.drools.runtime.help.impl.CommandsObjectContainer;
import org.drools.runtime.help.impl.ObjectsObjectContainer;
import org.drools.runtime.help.impl.ParameterContainer;
import org.drools.runtime.help.impl.RowItemContainer;
import org.drools.runtime.help.impl.WorkItemResultsContainer;
import org.drools.runtime.help.impl.XStreamJSon.CommandsContainerConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonAbortWorkItemConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonBatchExecutionCommandConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonBatchExecutionResultConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonCompleteWorkItemConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonFactHandleConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonFireAllRulesConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonGetGlobalConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonGetObjectConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonGetObjectsConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonInsertConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonInsertElementsConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonModifyConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonQueryConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonQueryResultsConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonRetractConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonSetGlobalConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonSignalEventConverter;
import org.drools.runtime.help.impl.XStreamJSon.JSonStartProcessConvert;
import org.drools.runtime.help.impl.XStreamJSon.RowItemConverter;
public class XStreamJson {
public static XStreamDataFormat newJSonMarshaller(XStreamDataFormat xstreamDataFormat) {
xstreamDataFormat.setDriver( "json" );
XStreamHelper.setAliases( xstreamDataFormat );
xstreamDataFormat.getAliases().put( "commands",
CommandsObjectContainer.class.getName() );
xstreamDataFormat.getAliases().put( "objects",
ObjectsObjectContainer.class.getName() );
xstreamDataFormat.getAliases().put( "item",
RowItemContainer.class.getName() );
xstreamDataFormat.getAliases().put( "parameters",
ParameterContainer.class.getName() );
xstreamDataFormat.getAliases().put( "results",
WorkItemResultsContainer.class.getName() );
//xstream.setMode( XStream.NO_REFERENCES );
List<String> converters = xstreamDataFormat.getConverters();
if ( converters == null ) {
converters = new ArrayList<String>();
}
converters.add( JSonFactHandleConverter.class.getName() );
converters.add( JSonBatchExecutionResultConverter.class.getName() );
converters.add( JSonInsertConverter.class.getName() );
converters.add( JSonFireAllRulesConverter.class.getName() );
converters.add( JSonBatchExecutionCommandConverter.class.getName() );
converters.add( CommandsContainerConverter.class.getName() );
converters.add( JSonGetObjectConverter.class.getName() );
converters.add( JSonRetractConverter.class.getName() );
converters.add( JSonModifyConverter.class.getName() );
converters.add( JSonSetGlobalConverter.class.getName() );
converters.add( JSonInsertElementsConverter.class.getName() );
converters.add( JSonGetGlobalConverter.class.getName() );
converters.add( JSonGetObjectsConverter.class.getName() );
converters.add( JSonQueryConverter.class.getName() );
converters.add( JSonQueryResultsConverter.class.getName() );
converters.add( RowItemConverter.class.getName() );
converters.add( JSonStartProcessConvert.class.getName() );
converters.add( JSonSignalEventConverter.class.getName() );
converters.add( JSonCompleteWorkItemConverter.class.getName() );
converters.add( JSonAbortWorkItemConverter.class.getName() );
xstreamDataFormat.setConverters( converters );
return xstreamDataFormat;
}
}