*/
public abstract class AbstractMarshaller<T> implements Marshaller<T> {
protected void marshalModelObject(StaxWriter<Element> writer, ModelObject modelObject) throws XMLStreamException {
if (modelObject instanceof Application) {
Application application = (Application) modelObject;
ApplicationType type = application.getType();
if (ApplicationType.PORTLET == type) {
marshalPortletApplication(writer, safeCast(application, Portlet.class));
} else if (ApplicationType.GADGET == type) {
marshalGadgetApplication(writer, safeCast(application, Gadget.class));
} else if (ApplicationType.WSRP_PORTLET == type) {