/******************************************************************************* * Copyright (c) 2012-2015 VMware, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * VMware, Inc. - initial API and implementation *******************************************************************************/ package org.springframework.ide.eclipse.config.ui.editors.integration.graph.model; import java.util.List; import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; import org.springframework.ide.eclipse.config.core.schemas.IntegrationSchemaConstants; import org.springframework.ide.eclipse.config.graph.model.AbstractConfigGraphDiagram; import org.springframework.ide.eclipse.config.graph.model.Activity; import org.springframework.ide.eclipse.config.graph.model.IDiagramModelFactory; /** * @author Leo Dos Santos */ @SuppressWarnings("restriction") public class IntegrationModelFactory extends AbstractIntegrationModelFactory implements IDiagramModelFactory { public void getChildrenFromXml(List<Activity> list, IDOMElement input, Activity parent) { if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_AGGREGATOR)) { AggregatorModelElement aggregator = new AggregatorModelElement(input, parent.getDiagram()); list.add(aggregator); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_BARRIER)) { BarrierModelElement bridge = new BarrierModelElement(input, parent.getDiagram()); list.add(bridge); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_BRIDGE)) { BridgeModelElement bridge = new BridgeModelElement(input, parent.getDiagram()); list.add(bridge); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CHAIN)) { ChainModelElement chain = new ChainModelElement(input, parent.getDiagram()); list.add(chain); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CHANNEL)) { ChannelModelElement channel = new ChannelModelElement(input, parent.getDiagram()); list.add(channel); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CLAIM_CHECK_IN)) { ClaimCheckInModelElement claim = new ClaimCheckInModelElement(input, parent.getDiagram()); list.add(claim); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CLAIM_CHECK_OUT)) { ClaimCheckOutModelElement claim = new ClaimCheckOutModelElement(input, parent.getDiagram()); list.add(claim); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CONTROL_BUS)) { ControlBusModelElement bus = new ControlBusModelElement(input, parent.getDiagram()); list.add(bus); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_DELAYER)) { DelayerModelElement delayer = new DelayerModelElement(input, parent.getDiagram()); list.add(delayer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_ENRICHER)) { EnricherModelElement enricher = new EnricherModelElement(input, parent.getDiagram()); list.add(enricher); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_EXCEPTION_TYPE_ROUTER)) { ExceptionTypeRouterModelElement router = new ExceptionTypeRouterModelElement(input, parent.getDiagram()); list.add(router); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_FILTER)) { FilterModelElement filter = new FilterModelElement(input, parent.getDiagram()); list.add(filter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_GATEWAY)) { GatewayModelElement gateway = new GatewayModelElement(input, parent.getDiagram()); list.add(gateway); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_HEADER_ENRICHER)) { HeaderEnricherModelElement enricher = new HeaderEnricherModelElement(input, parent.getDiagram()); list.add(enricher); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_HEADER_FILTER)) { HeaderFilterModelElement filter = new HeaderFilterModelElement(input, parent.getDiagram()); list.add(filter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_HEADER_VALUE_ROUTER)) { HeaderValueRouterModelElement router = new HeaderValueRouterModelElement(input, parent.getDiagram()); list.add(router); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_INBOUND_CHANNEL_ADAPTER)) { InboundChannelAdapterModelElement adapter = new InboundChannelAdapterModelElement(input, parent.getDiagram()); list.add(adapter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_JSON_TO_OBJECT_TRANSFORMER)) { JsonToObjectTransformerModelElement transformer = new JsonToObjectTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_LOGGING_CHANNEL_ADAPTER)) { LoggingChannelAdapterModelElement adapter = new LoggingChannelAdapterModelElement(input, parent.getDiagram()); list.add(adapter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_MAP_TO_OBJECT_TRANSFORMER)) { MapToObjectTransformerModelElement transformer = new MapToObjectTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_OBJECT_TO_JSON_TRANSFORMER)) { ObjectToJsonTransformerModelElement transformer = new ObjectToJsonTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_OBJECT_TO_MAP_TRANSFORMER)) { ObjectToMapTransformerModelElement transformer = new ObjectToMapTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_OBJECT_TO_STRING_TRANSFORMER)) { ObjectToStringTransformerModelElement transformer = new ObjectToStringTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_OUTBOUND_CHANNEL_ADAPTER)) { OutboundChannelAdapterModelElement adapter = new OutboundChannelAdapterModelElement(input, parent.getDiagram()); list.add(adapter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_PAYLOAD_DESERIALIZING_TRANSFORMER)) { PayloadDeserializingTransformerModelElement transformer = new PayloadDeserializingTransformerModelElement( input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_PAYLOAD_SERIALIZING_TRANSFORMER)) { PayloadSerializingTransformerModelElement transformer = new PayloadSerializingTransformerModelElement( input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_PAYLOAD_TYPE_ROUTER)) { PayloadTypeRouterModelElement router = new PayloadTypeRouterModelElement(input, parent.getDiagram()); list.add(router); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_PUBLISH_SUBSCRIBE_CHANNEL)) { PublishSubscribeChannelModelElement channel = new PublishSubscribeChannelModelElement(input, parent.getDiagram()); list.add(channel); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_RECIPIENT_LIST_ROUTER)) { RecipientListRouterModelElement router = new RecipientListRouterModelElement(input, parent.getDiagram()); list.add(router); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_RESEQUENCER)) { ResequencerModelElement resequencer = new ResequencerModelElement(input, parent.getDiagram()); list.add(resequencer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_RESOURCE_INBOUND_CHANNEL_ADAPTER)) { ResourceInboundChannelAdapterModelElement adapter = new ResourceInboundChannelAdapterModelElement(input, parent.getDiagram()); list.add(adapter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_ROUTER)) { RouterModelElement router = new RouterModelElement(input, parent.getDiagram()); list.add(router); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_SERVICE_ACTIVATOR)) { ServiceActivatorModelElement activator = new ServiceActivatorModelElement(input, parent.getDiagram()); list.add(activator); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_SPLITTER)) { SplitterModelElement splitter = new SplitterModelElement(input, parent.getDiagram()); list.add(splitter); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_SYSLOG_TO_MAP_TRANSFORMER)) { SyslogToMapTransformerModelElement transformer = new SyslogToMapTransformerModelElement(input, parent.getDiagram()); list.add(transformer); } else if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_TRANSFORMER)) { TransformerModelElement transformer = new TransformerModelElement(input, parent.getDiagram()); list.add(transformer); } } public void getGenericChildrenFromXml(List<Activity> list, IDOMElement input, Activity parent) { if (parent instanceof ChainContainerElement) { PlaceholderModelElement placeholder = new PlaceholderModelElement(input, parent.getDiagram()); if (!parent.getDiagram().listContainsElement(list, placeholder)) { list.add(placeholder); } } } @Override public void getNestedChildrenFromXml(List<Activity> list, IDOMElement input, AbstractConfigGraphDiagram diagram) { super.getNestedChildrenFromXml(list, input, diagram); if (input.getLocalName().equals(IntegrationSchemaConstants.ELEM_CHAIN)) { ChainContainerElement chain = new ChainContainerElement(input, diagram); list.add(chain); } } }