Search in sources :

Example 6 with OutputTable

use of org.talend.designer.dbmap.model.emf.dbmap.OutputTable in project tdi-studio-se by Talend.

the class DbMapComponent method buildExternalData.

@Override
public void buildExternalData(AbstractExternalData abstractData) {
    externalData = new ExternalDbMapData();
    if (abstractData instanceof DBMapData) {
        DBMapData mapperData = (DBMapData) abstractData;
        List<ExternalDbMapTable> externalTables = new ArrayList<ExternalDbMapTable>();
        // input
        for (InputTable pTable : mapperData.getInputTables()) {
            ExternalDbMapTable externalTable = new ExternalDbMapTable();
            externalTable.setName(pTable.getName());
            externalTable.setMinimized(pTable.isMinimized());
            externalTable.setAlias(pTable.getAlias());
            externalTable.setJoinType(pTable.getJoinType());
            externalTable.setTableName(pTable.getTableName());
            List<ExternalDbMapEntry> entities = new ArrayList<ExternalDbMapEntry>();
            for (DBMapperTableEntry pEntity : pTable.getDBMapperTableEntries()) {
                ExternalDbMapEntry entity = new ExternalDbMapEntry();
                entity.setExpression(pEntity.getExpression());
                entity.setJoin(pEntity.isJoin());
                entity.setName(pEntity.getName());
                entity.setOperator(pEntity.getOperator());
                entities.add(entity);
            }
            externalTable.setMetadataTableEntries(entities);
            externalTables.add(externalTable);
        }
        externalData.setInputTables(externalTables);
        // output
        externalTables = new ArrayList<ExternalDbMapTable>();
        for (OutputTable pTable : mapperData.getOutputTables()) {
            ExternalDbMapTable externalTable = new ExternalDbMapTable();
            externalTable.setName(pTable.getName());
            externalTable.setMinimized(pTable.isMinimized());
            externalTable.setTableName(pTable.getTableName());
            List<ExternalDbMapEntry> entities = new ArrayList<ExternalDbMapEntry>();
            for (DBMapperTableEntry pEntity : pTable.getDBMapperTableEntries()) {
                ExternalDbMapEntry entity = new ExternalDbMapEntry();
                entity.setExpression(pEntity.getExpression());
                entity.setName(pEntity.getName());
                entities.add(entity);
            }
            externalTable.setMetadataTableEntries(entities);
            // filters
            entities = new ArrayList<ExternalDbMapEntry>();
            List<ExternalDbMapEntry> otherFilterEntities = new ArrayList<ExternalDbMapEntry>();
            for (FilterEntry pFilter : pTable.getFilterEntries()) {
                ExternalDbMapEntry entity = new ExternalDbMapEntry();
                entity.setExpression(pFilter.getExpression());
                entity.setName(pFilter.getName());
                if (FilterTableEntry.OTHER_FILTER.equals(pFilter.getFilterKind())) {
                    otherFilterEntities.add(entity);
                } else {
                    entities.add(entity);
                }
            }
            externalTable.setCustomWhereConditionsEntries(entities);
            externalTable.setCustomOtherConditionsEntries(otherFilterEntities);
            externalTables.add(externalTable);
        }
        externalData.setOutputTables(externalTables);
    }
    this.setExternalData(externalData);
}
Also used : DBMapData(org.talend.designer.dbmap.model.emf.dbmap.DBMapData) ExternalDbMapData(org.talend.designer.dbmap.external.data.ExternalDbMapData) ArrayList(java.util.ArrayList) DBMapperTableEntry(org.talend.designer.dbmap.model.emf.dbmap.DBMapperTableEntry) OutputTable(org.talend.designer.dbmap.model.emf.dbmap.OutputTable) InputTable(org.talend.designer.dbmap.model.emf.dbmap.InputTable) ExternalDbMapTable(org.talend.designer.dbmap.external.data.ExternalDbMapTable) FilterEntry(org.talend.designer.dbmap.model.emf.dbmap.FilterEntry) ExternalDbMapEntry(org.talend.designer.dbmap.external.data.ExternalDbMapEntry)

Example 7 with OutputTable

use of org.talend.designer.dbmap.model.emf.dbmap.OutputTable in project tdi-studio-se by Talend.

the class DBMapDataImplTest method test3.

private void test3() {
    DBMapDataImpl mapData1 = new DBMapDataImpl();
    DBMapDataImpl mapData2 = new DBMapDataImpl();
    assertTrue(mapData1.equals(mapData2));
    final OutputTable persistentTable = DbmapFactory.eINSTANCE.createOutputTable();
    persistentTable.setMinimized(true);
    persistentTable.setName("table1");
    persistentTable.setTableName("tableName");
    final DBMapperTableEntry emfMapperTableEntry = DbmapFactory.eINSTANCE.createDBMapperTableEntry();
    emfMapperTableEntry.setExpression("expression1");
    emfMapperTableEntry.setName("entityName1");
    emfMapperTableEntry.setJoin(true);
    emfMapperTableEntry.setOperator("operator1");
    persistentTable.getDBMapperTableEntries().add(emfMapperTableEntry);
    mapData1.getOutputTables().add(persistentTable);
    final OutputTable persistentTable2 = DbmapFactory.eINSTANCE.createOutputTable();
    persistentTable2.setMinimized(true);
    persistentTable2.setName("table1");
    persistentTable2.setTableName("tableName");
    final DBMapperTableEntry emfMapperTableEntry2 = DbmapFactory.eINSTANCE.createDBMapperTableEntry();
    emfMapperTableEntry2.setExpression("expression1");
    emfMapperTableEntry2.setName("entityName1");
    emfMapperTableEntry2.setJoin(true);
    emfMapperTableEntry2.setOperator("operator1");
    persistentTable2.getDBMapperTableEntries().add(emfMapperTableEntry2);
    mapData2.getOutputTables().add(persistentTable2);
    assertTrue(mapData1.equals(mapData2));
}
Also used : OutputTable(org.talend.designer.dbmap.model.emf.dbmap.OutputTable) DBMapperTableEntry(org.talend.designer.dbmap.model.emf.dbmap.DBMapperTableEntry)

Example 8 with OutputTable

use of org.talend.designer.dbmap.model.emf.dbmap.OutputTable in project tdi-studio-se by Talend.

the class DbMapServiceTest method testUpdateEMFDBMapData.

@Test
public void testUpdateEMFDBMapData() {
    DbMapService service = new DbMapService();
    service.updateEMFDBMapData(nodeType, oldValue, newValue);
    DBMapData data = (DBMapData) nodeType.getNodeData();
    InputTable input = data.getInputTables().get(0);
    assertEquals("context.schema.context.table", input.getName());
    assertEquals("context.schema.context.table", input.getTableName());
    OutputTable out = data.getOutputTables().get(0);
    // output connection name should not be updated.
    assertEquals("output", out.getName());
    DBMapperTableEntry outEntry = out.getDBMapperTableEntries().get(0);
    assertEquals("context.schema.context.table.column", outEntry.getExpression());
}
Also used : InputTable(org.talend.designer.dbmap.model.emf.dbmap.InputTable) DBMapData(org.talend.designer.dbmap.model.emf.dbmap.DBMapData) OutputTable(org.talend.designer.dbmap.model.emf.dbmap.OutputTable) DBMapperTableEntry(org.talend.designer.dbmap.model.emf.dbmap.DBMapperTableEntry) Test(org.junit.Test)

Example 9 with OutputTable

use of org.talend.designer.dbmap.model.emf.dbmap.OutputTable in project tdi-studio-se by Talend.

the class DbMapService method updateEMFDBMapData.

@Override
public void updateEMFDBMapData(NodeType nodeType, String oldValue, String newValue) {
    AbstractExternalData nodeData = nodeType.getNodeData();
    if (nodeData instanceof DBMapData) {
        DBMapData dbMapData = (DBMapData) nodeData;
        for (InputTable input : dbMapData.getInputTables()) {
            if (input.getName().equals(oldValue) || input.getTableName().equals(oldValue)) {
                input.setName(newValue);
                input.setTableName(newValue);
            }
        }
        for (OutputTable output : dbMapData.getOutputTables()) {
            List<DBMapperTableEntry> entries = output.getDBMapperTableEntries();
            for (DBMapperTableEntry entry : entries) {
                String expression = entry.getExpression();
                if (expression != null && !"".equals(expression.trim())) {
                    //$NON-NLS-1$
                    //$NON-NLS-1$
                    int index = expression.lastIndexOf(".");
                    // at least "a.b"
                    if (index > 0) {
                        String connectionName = expression.substring(0, index);
                        if (oldValue.equals(connectionName)) {
                            entry.setExpression(newValue + expression.substring(index, expression.length()));
                        }
                    }
                }
            }
        }
    }
}
Also used : AbstractExternalData(org.talend.designer.core.model.utils.emf.talendfile.AbstractExternalData) InputTable(org.talend.designer.dbmap.model.emf.dbmap.InputTable) DBMapData(org.talend.designer.dbmap.model.emf.dbmap.DBMapData) OutputTable(org.talend.designer.dbmap.model.emf.dbmap.OutputTable) DBMapperTableEntry(org.talend.designer.dbmap.model.emf.dbmap.DBMapperTableEntry)

Aggregations

OutputTable (org.talend.designer.dbmap.model.emf.dbmap.OutputTable)9 DBMapperTableEntry (org.talend.designer.dbmap.model.emf.dbmap.DBMapperTableEntry)7 InputTable (org.talend.designer.dbmap.model.emf.dbmap.InputTable)7 DBMapData (org.talend.designer.dbmap.model.emf.dbmap.DBMapData)5 ArrayList (java.util.ArrayList)3 FilterEntry (org.talend.designer.dbmap.model.emf.dbmap.FilterEntry)3 AbstractExternalData (org.talend.designer.core.model.utils.emf.talendfile.AbstractExternalData)2 ExternalDbMapEntry (org.talend.designer.dbmap.external.data.ExternalDbMapEntry)2 ExternalDbMapTable (org.talend.designer.dbmap.external.data.ExternalDbMapTable)2 Before (org.junit.Before)1 Test (org.junit.Test)1 NodeType (org.talend.designer.core.model.utils.emf.talendfile.NodeType)1 ProcessType (org.talend.designer.core.model.utils.emf.talendfile.ProcessType)1 ExternalDbMapData (org.talend.designer.dbmap.external.data.ExternalDbMapData)1 VarTable (org.talend.designer.dbmap.model.emf.dbmap.VarTable)1 IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)1