Search in sources :

Example 1 with WSDLParameter

use of org.talend.core.model.metadata.builder.connection.WSDLParameter in project tdi-studio-se by Talend.

the class WebServiceHelper method getWebServiceUI.

/*
     * (non-Javadoc)
     * 
     * @see
     * org.talend.repository.ui.wizards.metadata.connection.wsdl.IWebService#getWebServiceUI(org.eclipse.swt.widgets
     * .Composite, org.talend.core.model.components.IComponent)
     */
@Override
public AbstractWebService getWebServiceUI(Composite uiParent, ConnectionItem connectionItem) {
    // TODO Auto-generated method stub
    WebServiceComponent wenCom = new WebServiceComponent();
    wenCom.initialize();
    IComponent iComponent = ComponentsFactoryProvider.getInstance().get("tWebService", ComponentCategory.CATEGORY_4_DI.getName());
    List<? extends IElementParameter> parameters = iComponent.createElementParameters(wenCom);
    wenCom.setElementParameters(parameters);
    if (connectionItem.getState() != null) {
        WSDLSchemaConnection connection = (WSDLSchemaConnection) connectionItem.getConnection();
        wenCom.getElementParameter("ENDPOINT").setValue(connection.getEndpointURI());
        String currentURL = connection.getWSDL();
        String method = connection.getMethodName();
        String currePortName = connection.getPortName();
        String nameSpace = connection.getServerNameSpace();
        String serverName = connection.getServerName();
        String portNameSpace = connection.getPortNameSpace();
        if (!"".equals(currentURL) && currentURL != null) {
            IElementParameter ENDPOINTPara = wenCom.getElementParameter("ENDPOINT");
            ENDPOINTPara.setValue(currentURL);
        }
        if (currePortName != null) {
            IElementParameter Port_Name = wenCom.getElementParameter("PORT_NAME");
            Port_Name.setValue(currePortName);
        }
        //
        if (method != null) {
            IElementParameter METHODPara = wenCom.getElementParameter("METHOD");
            METHODPara.setValue(method);
        }
        if (nameSpace != null) {
            IElementParameter Service_NS = wenCom.getElementParameter("SERVICE_NS");
            Service_NS.setValue(nameSpace);
        }
        if (serverName != null) {
            IElementParameter Service_Name = wenCom.getElementParameter("SERVICE_NAME");
            Service_Name.setValue(serverName);
        }
        if (portNameSpace != null) {
            IElementParameter Port_NS = wenCom.getElementParameter("PORT_NS");
            Port_NS.setValue(portNameSpace);
        }
        if (connection.getParameterValue() != null) {
            IElementParameter INPUT_PARAMSPara = wenCom.getElementParameter("INPUT_PARAMS");
            List<Map<String, String>> inputparaValue = (List<Map<String, String>>) INPUT_PARAMSPara.getValue();
            EList inputList = connection.getParameterValue();
            for (int i = 0; i < inputList.size(); i++) {
                Map<String, String> inputMap = new HashMap<String, String>(2);
                WSDLParameter parameter = (WSDLParameter) inputList.get(i);
                if (parameter.getElement() != null) {
                    if (parameter.getExpression() != null) {
                        inputMap.put("EXPRESSION", parameter.getExpression());
                    }
                    inputMap.put("ELEMENT", parameter.getElement());
                    inputparaValue.add(inputMap);
                }
                if (parameter.getSource() != null) {
                    inputMap.put("SOURCE", parameter.getSource());
                    inputparaValue.add(inputMap);
                }
                if (parameter.getColumn() != null) {
                    inputMap.put("COLUMN", parameter.getColumn());
                    inputparaValue.add(inputMap);
                }
                if (parameter.getParameterInfo() != null) {
                    inputMap.put("PARAMETERINFO", parameter.getParameterInfo());
                    inputMap.put("PARAPARENT", parameter.getParameterInfoParent());
                    inputparaValue.add(inputMap);
                }
            }
        }
        if (connection.getOutputParameter() != null) {
            IElementParameter OUTPUT_PARAMSPara = wenCom.getElementParameter("OUTPUT_PARAMS");
            List<Map<String, String>> outputMap = (List<Map<String, String>>) OUTPUT_PARAMSPara.getValue();
            EList inputList = connection.getOutputParameter();
            for (int i = 0; i < inputList.size(); i++) {
                Map<String, String> eleMap = new HashMap<String, String>(3);
                WSDLParameter parameter = (WSDLParameter) inputList.get(i);
                if (parameter.getExpression() != null || parameter.getColumn() != null) {
                    if (parameter.getExpression() != null) {
                        eleMap.put("EXPRESSION", parameter.getExpression());
                    }
                    // if (parameter.getColumn() != null) {
                    eleMap.put("COLUMN", parameter.getColumn());
                    // }
                    outputMap.add(eleMap);
                }
                if (parameter.getElement() != null) {
                    eleMap.put("ELEMENT", parameter.getElement());
                    outputMap.add(eleMap);
                }
                if (parameter.getSource() != null) {
                    eleMap.put("SOURCE", parameter.getSource());
                    outputMap.add(eleMap);
                }
                if (parameter.getParameterInfo() != null) {
                    eleMap.put("PARAMETERINFO", parameter.getParameterInfo());
                    eleMap.put("PARAPARENT", parameter.getParameterInfoParent());
                    outputMap.add(eleMap);
                }
            }
        }
    }
    MetadataTable inputMetadata = new MetadataTable();
    inputMetadata.setAttachedConnector("FLOW");
    inputMetadata.setLabel("Input");
    MetadataTable outputMetadaTable = null;
    List<org.talend.core.model.metadata.IMetadataColumn> newColumnList = new ArrayList<org.talend.core.model.metadata.IMetadataColumn>();
    List<org.talend.core.model.metadata.IMetadataColumn> newInputColumnList = new ArrayList<org.talend.core.model.metadata.IMetadataColumn>();
    if (connectionItem.getState() != null) {
        outputMetadaTable = new MetadataTable();
        outputMetadaTable.setAttachedConnector("OUTPUT");
        outputMetadaTable.setLabel("Output");
        WSDLSchemaConnection connection = (WSDLSchemaConnection) connectionItem.getConnection();
        Set<org.talend.core.model.metadata.builder.connection.MetadataTable> tables = ConnectionHelper.getTables(connection);
        //
        // EList<MetadataColumn> schemaMetadataColumn =
        // ((org.talend.core.model.metadata.builder.connection.MetadataTable) ConnectionHelper
        // .getTables(connection).toArray()[0]).getColumns();
        Iterator it = tables.iterator();
        while (it.hasNext()) {
            org.talend.core.model.metadata.builder.connection.MetadataTable metadatatable = (org.talend.core.model.metadata.builder.connection.MetadataTable) it.next();
            if (metadatatable.getLabel().equals("Output")) {
                for (int i = 0; i < metadatatable.getColumns().size(); i++) {
                    org.talend.core.model.metadata.builder.connection.MetadataColumn col = metadatatable.getColumns().get(i);
                    org.talend.core.model.metadata.MetadataColumn newColumn = new org.talend.core.model.metadata.MetadataColumn();
                    newColumn.setLabel(col.getLabel());
                    newColumn.setTalendType(col.getTalendType());
                    newColumn.setOriginalDbColumnName(col.getLabel());
                    newColumnList.add(newColumn);
                }
                outputMetadaTable.setListColumns(newColumnList);
            } else {
                // .getTables(connection).toArray()[1]).getColumns();
                for (int i = 0; i < metadatatable.getColumns().size(); i++) {
                    org.talend.core.model.metadata.builder.connection.MetadataColumn col = metadatatable.getColumns().get(i);
                    org.talend.core.model.metadata.MetadataColumn newColumn = new org.talend.core.model.metadata.MetadataColumn();
                    newColumn.setLabel(col.getLabel());
                    newColumn.setTalendType(col.getTalendType());
                    newColumn.setOriginalDbColumnName(col.getLabel());
                    newInputColumnList.add(newColumn);
                }
                inputMetadata.setListColumns(newInputColumnList);
            }
        }
    } else {
        outputMetadaTable = new MetadataTable();
        outputMetadaTable.setAttachedConnector("OUTPUT");
    }
    List<IMetadataTable> metadataTableList = new ArrayList<IMetadataTable>(4);
    metadataTableList.add(inputMetadata);
    metadataTableList.add(outputMetadaTable);
    wenCom.setMetadataList(metadataTableList);
    WebServiceComponentMain b = new WebServiceComponentMain(wenCom);
    wenCom.setComponent(b.getWebServiceComponent().getComponent());
    webServiceUI = new WebServiceUI(uiParent, b, connectionItem);
    webServiceUI.init();
    manager.addWebServiceSaveListener(this);
    return webServiceUI;
}
Also used : HashMap(java.util.HashMap) IComponent(org.talend.core.model.components.IComponent) ArrayList(java.util.ArrayList) WebServiceComponent(org.talend.designer.webservice.WebServiceComponent) WebServiceComponentMain(org.talend.designer.webservice.WebServiceComponentMain) IMetadataTable(org.talend.core.model.metadata.IMetadataTable) MetadataTable(org.talend.core.model.metadata.MetadataTable) Iterator(java.util.Iterator) IElementParameter(org.talend.core.model.process.IElementParameter) ArrayList(java.util.ArrayList) EList(org.eclipse.emf.common.util.EList) List(java.util.List) WSDLSchemaConnection(org.talend.core.model.metadata.builder.connection.WSDLSchemaConnection) IMetadataTable(org.talend.core.model.metadata.IMetadataTable) EList(org.eclipse.emf.common.util.EList) WSDLParameter(org.talend.core.model.metadata.builder.connection.WSDLParameter) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Iterator (java.util.Iterator)1 List (java.util.List)1 Map (java.util.Map)1 EList (org.eclipse.emf.common.util.EList)1 IComponent (org.talend.core.model.components.IComponent)1 IMetadataTable (org.talend.core.model.metadata.IMetadataTable)1 MetadataTable (org.talend.core.model.metadata.MetadataTable)1 WSDLParameter (org.talend.core.model.metadata.builder.connection.WSDLParameter)1 WSDLSchemaConnection (org.talend.core.model.metadata.builder.connection.WSDLSchemaConnection)1 IElementParameter (org.talend.core.model.process.IElementParameter)1 WebServiceComponent (org.talend.designer.webservice.WebServiceComponent)1 WebServiceComponentMain (org.talend.designer.webservice.WebServiceComponentMain)1