Search in sources :

Example 16 with TypedReturnCode

use of org.talend.utils.sugars.TypedReturnCode in project tdq-studio-se by Talend.

the class UniquePkAndFkTask method getTables.

private TypedReturnCode<List<TdTable>> getTables(ModelElement element) {
    TypedReturnCode<List<TdTable>> returnCode = new TypedReturnCode<List<TdTable>>(false);
    List<TdTable> tableList = new ArrayList<TdTable>();
    returnCode.setObject(tableList);
    if (element == null)
        return returnCode;
    if (element instanceof Catalog) {
        for (ModelElement subElement : ((Catalog) element).getOwnedElement()) {
            TypedReturnCode<List<TdTable>> newreturnCode = getTables(subElement);
            tableList.addAll(newreturnCode.getObject());
            if (newreturnCode.isOk()) {
                returnCode.setOk(newreturnCode.isOk());
            }
        }
    } else if (element instanceof Schema) {
        for (ModelElement subElement : ((Schema) element).getOwnedElement()) {
            TypedReturnCode<List<TdTable>> newreturnCode = getTables(subElement);
            tableList.addAll(newreturnCode.getObject());
            if (newreturnCode.isOk()) {
                returnCode.setOk(newreturnCode.isOk());
            }
        }
    } else if (element instanceof TdTable) {
        tableList.add((TdTable) element);
        if (checkPkAndFk((TdTable) element)) {
            returnCode.setOk(true);
        }
    }
    return returnCode;
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) TdTable(org.talend.cwm.relational.TdTable) TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) Schema(orgomg.cwm.resource.relational.Schema) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) Catalog(orgomg.cwm.resource.relational.Catalog)

Example 17 with TypedReturnCode

use of org.talend.utils.sugars.TypedReturnCode in project tdq-studio-se by Talend.

the class ExportConnectionToTOSAction method fillCatalogSchema.

/**
 * DOC gdbu Comment method "fillCatalogSchema".
 *
 * @deprecated Won't be used.
 * @param tdDataProvider
 */
@Deprecated
protected DatabaseConnection fillCatalogSchema(IMetadataConnection newMetadataConn) {
    MetadataFillFactory instance = MetadataFillFactory.getDBInstance(newMetadataConn);
    ReturnCode rc = instance.createConnection(newMetadataConn);
    DatabaseConnection dbConn = null;
    if (rc.isOk()) {
        dbConn = (DatabaseConnection) instance.fillUIConnParams(newMetadataConn, null);
        DatabaseMetaData dbMetadata = null;
        java.sql.Connection sqlConn = null;
        try {
            if (rc instanceof TypedReturnCode) {
                Object sqlConnObject = ((TypedReturnCode) rc).getObject();
                if (sqlConnObject instanceof java.sql.Connection) {
                    sqlConn = (java.sql.Connection) sqlConnObject;
                    dbMetadata = ExtractMetaDataUtils.getInstance().getConnectionMetadata(sqlConn);
                }
            }
            List<String> packageFilterCatalog = MetadataConnectionUtils.getPackageFilter(dbConn, dbMetadata, true);
            instance.fillCatalogs(dbConn, dbMetadata, packageFilterCatalog);
            List<String> packageFilterSchema = MetadataConnectionUtils.getPackageFilter(dbConn, dbMetadata, false);
            instance.fillSchemas(dbConn, dbMetadata, packageFilterSchema);
        } catch (SQLException e) {
            log.error(e, e);
        } finally {
            if (sqlConn != null) {
                ConnectionUtils.closeConnection(sqlConn);
            }
        }
    } else {
        log.error(rc.getMessage());
    }
    return dbConn;
}
Also used : TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) ReturnCode(org.talend.utils.sugars.ReturnCode) SQLException(java.sql.SQLException) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) IMetadataConnection(org.talend.core.model.metadata.IMetadataConnection) DatabaseMetaData(java.sql.DatabaseMetaData) TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) MetadataFillFactory(org.talend.metadata.managment.model.MetadataFillFactory) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection)

Example 18 with TypedReturnCode

use of org.talend.utils.sugars.TypedReturnCode in project tdq-studio-se by Talend.

the class MatchingKeySection method refreshChart.

public void refreshChart(boolean needCompute) {
    if (!hasMatchKey(true)) {
        MessageDialogWithToggle.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DefaultMessagesImpl.getString("BlockingKeySection.RefreshChartError"), // $NON-NLS-1$ //$NON-NLS-2$
        DefaultMessagesImpl.getString("MatchMasterDetailsPage.NoMatchKey"));
        return;
    }
    ReturnCode checkResultStatus = checkResultStatus();
    if (!checkResultStatus.isOk()) {
        MessageDialogWithToggle.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DefaultMessagesImpl.getString("BlockingKeySection.RefreshChartError"), // $NON-NLS-1$
        checkResultStatus.getMessage());
        return;
    }
    listeners.firePropertyChange(MatchAnalysisConstant.NEED_REFRESH_DATA, true, false);
    List<Object[]> results;
    // MOD TDQ-9741: "chart" button will compute, "hide group" will not compute
    if (needCompute) {
        TypedReturnCode<RecordMatchingIndicator> computeMatchResult = computeMatchResult();
        if (!computeMatchResult.isOk()) {
            if (computeMatchResult.getMessage() != null && !computeMatchResult.getMessage().equals(StringUtils.EMPTY)) {
                MessageDialogWithToggle.openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), DefaultMessagesImpl.getString("RunAnalysisAction.runAnalysis"), // $NON-NLS-1$
                computeMatchResult.getMessage());
            }
            return;
        }
        RecordMatchingIndicator recordMatchingIndicator = computeMatchResult.getObject();
        matchRuleChartComp.refresh(recordMatchingIndicator.getGroupSize2groupFrequency());
        // sort the result before refresh
        results = MatchRuleAnlaysisUtils.sortResultByGID(recordMatchingIndicator.getMatchRowSchema(), this.getTableResult());
    } else {
        // for "hide group" , get the result from the last "chart" directly.
        matchRuleChartComp.refresh(getChartResult());
        results = getTableResult();
    }
    // refresh related table
    MatchRuleAnlaysisUtils.refreshDataTable(analysis, results);
    // Clear the match row data.
    matchRows.clear();
}
Also used : TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) ReturnCode(org.talend.utils.sugars.ReturnCode) RecordMatchingIndicator(org.talend.dataquality.indicators.columnset.RecordMatchingIndicator)

Example 19 with TypedReturnCode

use of org.talend.utils.sugars.TypedReturnCode in project tdq-studio-se by Talend.

the class AbstractSchemaEvaluator method reloadConnectionAfterException.

/**
 * DOC scorreia Comment method "reloadConnection".
 *
 * @param catalog
 */
protected void reloadConnectionAfterException(String catalog) {
    nbExceptions++;
    if (nbExceptions < MAX_EXCEPTION) {
        // not yet
        return;
    }
    ReturnCode connClosed = super.closeConnection();
    if (!connClosed.isOk()) {
        // $NON-NLS-1$
        log.error(Messages.getString("AbstractSchemaEvaluator.ReloadProblem", connClosed.getMessage()));
    }
    Connection dp = this.getDataManager();
    TypedReturnCode<java.sql.Connection> conn = JavaSqlFactory.createConnection(dp);
    if (!conn.isOk()) {
        log.error(conn.getMessage());
        return;
    }
    // else ok
    this.setConnection(conn.getObject());
    this.selectCatalog(catalog);
    // reset the number of exceptions
    nbExceptions = 0;
}
Also used : TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) ReturnCode(org.talend.utils.sugars.ReturnCode) Connection(org.talend.core.model.metadata.builder.connection.Connection)

Example 20 with TypedReturnCode

use of org.talend.utils.sugars.TypedReturnCode in project tdq-studio-se by Talend.

the class DQStructureComparer method getRefreshedDataProvider.

public static TypedReturnCode<Connection> getRefreshedDataProvider(Connection prevDataProvider) {
    // ADD xqliu 2010-03-29 bug 11951
    TypedReturnCode<Connection> returnProvider = new TypedReturnCode<Connection>();
    // ~11951
    // MOD by zshen 2012-07-05 for bug 5074 remove convert about DatabaseParameter instead
    // Connection->DatabaseParameter->ImetadataConnection into Connection->ImetadataConnection
    IMetadataConnection metadataConnection = ConvertionHelper.convert((DatabaseConnection) prevDataProvider, false, prevDataProvider.getContextName());
    Connection copyedConnection = null;
    EDatabaseTypeName currentEDatabaseType = EDatabaseTypeName.getTypeFromDbType(metadataConnection.getDbType());
    if (currentEDatabaseType != null) {
        MetadataFillFactory dbInstance = MetadataFillFactory.getDBInstance(metadataConnection);
        TypedReturnCode<?> trc = (TypedReturnCode<?>) dbInstance.createConnection(metadataConnection);
        Object sqlConnObject = trc.getObject();
        DatabaseMetaData dbJDBCMetadata = null;
        if (trc.isOk() && sqlConnObject instanceof java.sql.Connection) {
            java.sql.Connection sqlConn = (java.sql.Connection) sqlConnObject;
            // MOD sizhaoliu 2012-5-21 TDQ-4884 reload structure issue
            // dbJDBCMetadata = org.talend.utils.sql.ConnectionUtils.getConnectionMetadata(sqlConn);
            dbJDBCMetadata = ExtractMetaDataUtils.getInstance().getDatabaseMetaData(sqlConn, (DatabaseConnection) prevDataProvider);
            copyedConnection = EObjectHelper.deepCopy(prevDataProvider);
            copyedConnection.getDataPackage().clear();
            // MOD zshen the parameter for packageFiler need to differnent isCatalog or not.
            dbInstance.fillCatalogs(copyedConnection, dbJDBCMetadata, metadataConnection, MetadataConnectionUtils.getPackageFilter(copyedConnection, dbJDBCMetadata, true));
            dbInstance.fillSchemas(copyedConnection, dbJDBCMetadata, metadataConnection, MetadataConnectionUtils.getPackageFilter(copyedConnection, dbJDBCMetadata, false));
            ConnectionUtils.closeConnection(sqlConn);
        } else {
            returnProvider.setMessage(trc.getMessage());
        }
    }
    if (copyedConnection == null) {
        returnProvider.setOk(false);
    } else {
        returnProvider.setObject(copyedConnection);
    }
    // ~11951
    return returnProvider;
}
Also used : DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) IMetadataConnection(org.talend.core.model.metadata.IMetadataConnection) Connection(org.talend.core.model.metadata.builder.connection.Connection) IMetadataConnection(org.talend.core.model.metadata.IMetadataConnection) DatabaseMetaData(java.sql.DatabaseMetaData) TypedReturnCode(org.talend.utils.sugars.TypedReturnCode) MetadataFillFactory(org.talend.metadata.managment.model.MetadataFillFactory) EObject(org.eclipse.emf.ecore.EObject) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) EDatabaseTypeName(org.talend.core.database.EDatabaseTypeName)

Aggregations

TypedReturnCode (org.talend.utils.sugars.TypedReturnCode)34 ReturnCode (org.talend.utils.sugars.ReturnCode)19 Connection (org.talend.core.model.metadata.builder.connection.Connection)10 SQLException (java.sql.SQLException)7 Indicator (org.talend.dataquality.indicators.Indicator)7 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)7 Connection (java.sql.Connection)6 ArrayList (java.util.ArrayList)5 IMetadataConnection (org.talend.core.model.metadata.IMetadataConnection)5 Dependency (orgomg.cwm.objectmodel.core.Dependency)5 File (java.io.File)4 DatabaseMetaData (java.sql.DatabaseMetaData)4 EObject (org.eclipse.emf.ecore.EObject)4 MetadataFillFactory (org.talend.metadata.managment.model.MetadataFillFactory)4 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)3 TdColumn (org.talend.cwm.relational.TdColumn)3 Expression (orgomg.cwm.objectmodel.core.Expression)3 CSVReader (com.talend.csv.CSVReader)2 IOException (java.io.IOException)2 Date (java.util.Date)2