package org.switchyard.component.camel.common.model.v1;
import org.switchyard.config.Configuration;
import org.switchyard.config.model.Descriptor;
import org.switchyard.config.model.Model;
import org.switchyard.config.model.composer.ContextMapperModel;
import org.switchyard.config.model.composer.MessageComposerModel;
import org.switchyard.config.model.composer.v1.V1ContextMapperModel;
import org.switchyard.config.model.composer.v1.V1MessageComposerModel;
import org.switchyard.config.model.composite.v1.V1CompositeMarshaller;
/**
* Base class for camel marshallers.
*
* @author David Ward <<a href="mailto:dward@jboss.org">dward@jboss.org</a>> © 2013 Red Hat Inc.
*/
public abstract class V1BaseCamelMarshaller extends V1CompositeMarshaller {
/**
* Creates new marshaller.
*
* @param desc Descriptor
*/
public V1BaseCamelMarshaller(Descriptor desc) {
super(desc);
}
/**
* Reads in the Configuration, looking for various knowledge models.
* If not found, it falls back to the super class (V1CompositeMarshaller).
*
* @param config the Configuration
* @return the Model
*/
@Override
public Model read(Configuration config) {
String name = config.getName();
Descriptor desc = getDescriptor();
if (name.equals(ContextMapperModel.CONTEXT_MAPPER)) {
return new V1ContextMapperModel(config, desc);
} else if (name.equals(MessageComposerModel.MESSAGE_COMPOSER)) {
return new V1MessageComposerModel(config, desc);
}
return super.read(config);
}
}