Search in sources :

Example 6 with TdView

use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.

the class CatalogSchemaComparisonLevel method reloadElementOfPackage.

/**
 * DOC rli Comment method "reloadElementOfPackage".
 *
 * @param toReloadObj
 * @return
 * @throws ReloadCompareException
 */
private List<ColumnSet> reloadElementOfPackage(Package toReloadObj) throws ReloadCompareException {
    List<ColumnSet> columnSetList = new ArrayList<ColumnSet>();
    try {
        // MOD by msjian bug 2011-5-16 20875, the reload element is not added correctly
        Catalog catalogObj = SwitchHelpers.CATALOG_SWITCH.doSwitch(toReloadObj);
        Schema schemaObj = SwitchHelpers.SCHEMA_SWITCH.doSwitch(toReloadObj);
        if (schemaObj != null) {
            List<ModelElement> elementList = schemaObj.getOwnedElement();
            if (elementList != null && elementList.size() > 0) {
                elementList.clear();
            }
            List<TdTable> tables = DqRepositoryViewService.getTables(tempReloadProvider, schemaObj, null, true, true);
            SchemaHelper.addTables(tables, schemaObj);
            columnSetList.addAll(tables);
            List<TdView> views = DqRepositoryViewService.getViews(tempReloadProvider, schemaObj, null, true, true);
            SchemaHelper.addViews(views, schemaObj);
            columnSetList.addAll(views);
        } else {
            List<ModelElement> elementList = catalogObj.getOwnedElement();
            if (elementList != null && elementList.size() > 0) {
                elementList.clear();
            }
            List<TdTable> tables = DqRepositoryViewService.getTables(tempReloadProvider, catalogObj, null, true, true);
            CatalogHelper.addTables(tables, catalogObj);
            columnSetList.addAll(tables);
            List<TdView> views = DqRepositoryViewService.getViews(tempReloadProvider, catalogObj, null, true, true);
            CatalogHelper.addViews(views, catalogObj);
            columnSetList.addAll(views);
        }
    // else {
    // List<TdTable> tables = DqRepositoryViewService.getTables(tempReloadProvider, (Schema) toReloadObj, null,
    // true);
    // SchemaHelper.addTables(tables, (Schema) toReloadObj);
    // columnSetList.addAll(tables);
    // 
    // List<TdView> views = DqRepositoryViewService.getViews(tempReloadProvider, (Schema) toReloadObj, null,
    // true);
    // SchemaHelper.addViews(views, (Schema) toReloadObj);
    // columnSetList.addAll(views);
    // 
    // }
    } catch (Exception e1) {
        throw new ReloadCompareException(e1);
    }
    // EMFSharedResources.getInstance().saveResource(tempReloadProvider.eResource());
    return columnSetList;
}
Also used : TdTable(org.talend.cwm.relational.TdTable) Schema(orgomg.cwm.resource.relational.Schema) ArrayList(java.util.ArrayList) ReloadCompareException(org.talend.cwm.compare.exception.ReloadCompareException) ColumnSet(orgomg.cwm.resource.relational.ColumnSet) Catalog(orgomg.cwm.resource.relational.Catalog) ReloadCompareException(org.talend.cwm.compare.exception.ReloadCompareException) ModelElement(orgomg.cwm.objectmodel.core.ModelElement) TdView(org.talend.cwm.relational.TdView)

Example 7 with TdView

use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.

the class CatalogSchemaComparisonLevel method resetTaggedValues.

/*
     * (non-Javadoc)
     * 
     * @see org.talend.cwm.compare.factory.comparisonlevel.AbstractComparisonLevel#resetTaggedValues()
     */
@Override
protected void resetTaggedValues() throws ReloadCompareException {
    super.resetTaggedValues();
    if (PluginChecker.isTDQLoaded()) {
        Package selectedPackage = getPackageFromObject(selectedObj);
        List<TdTable> tables = PackageHelper.getTables(selectedPackage);
        for (TdTable table : tables) {
            // reset the table's tagged values "CONCEPT_NAME".
            String tmpTableConceptName = tmpTableTaggedValuesMap.get(table.getName());
            if (tmpTableConceptName != null) {
                TaggedValueHelper.setTaggedValue(table, TaggedValueHelper.CONCEPT_NAME, tmpTableConceptName);
            }
        }
        List<TdView> views = PackageHelper.getViews(selectedPackage);
        for (TdView view : views) {
            // reset the view's tagged values "CONCEPT_NAME".
            String tmpViewConceptName = tmpTableTaggedValuesMap.get(view.getName());
            if (tmpViewConceptName != null) {
                TaggedValueHelper.setTaggedValue(view, TaggedValueHelper.CONCEPT_NAME, tmpViewConceptName);
            }
        }
    }
}
Also used : TdTable(org.talend.cwm.relational.TdTable) TdView(org.talend.cwm.relational.TdView) Package(orgomg.cwm.objectmodel.core.Package)

Example 8 with TdView

use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.

the class ModelElementEditonDistance method distance.

/*
     * (non-Javadoc)
     * 
     * @see org.eclipse.emf.compare.match.eobject.EditionDistance#distance(org.eclipse.emf.compare.Comparison,
     * org.eclipse.emf.ecore.EObject, org.eclipse.emf.ecore.EObject)
     */
@Override
public double distance(Comparison inProgress, EObject a, EObject b) {
    boolean isSame = false;
    if (a instanceof DatabaseConnection) {
        return 0;
    }
    if (a instanceof Catalog && b instanceof Catalog) {
        Catalog catalog1 = (Catalog) a;
        Catalog catalog2 = (Catalog) b;
        isSame = StringUtils.equalsIgnoreCase(catalog1.getName(), catalog2.getName());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof Schema && b instanceof Schema) {
        Schema schema1 = (Schema) a;
        Schema schema2 = (Schema) b;
        isSame = StringUtils.equalsIgnoreCase(schema1.getName(), schema2.getName());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TdTable && b instanceof TdTable) {
        TdTable tdTable1 = (TdTable) a;
        TdTable tdTable2 = (TdTable) b;
        isSame = StringUtils.equalsIgnoreCase(tdTable1.getName(), tdTable2.getName());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TdView && b instanceof TdView) {
        TdView tdView1 = (TdView) a;
        TdView tdView2 = (TdView) b;
        isSame = StringUtils.equalsIgnoreCase(tdView1.getName(), tdView2.getName());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TdColumn && b instanceof TdColumn) {
        TdColumn tdColumn1 = (TdColumn) a;
        TdColumn tdColumn2 = (TdColumn) b;
        isSame = StringUtils.equalsIgnoreCase(tdColumn1.getName(), tdColumn2.getName()) && distance(inProgress, tdColumn1.getSqlDataType(), tdColumn2.getSqlDataType()) == 0;
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TaggedValue && b instanceof TaggedValue) {
        TaggedValue taggedValue1 = (TaggedValue) a;
        TaggedValue taggedValue2 = (TaggedValue) b;
        isSame = StringUtils.equalsIgnoreCase(taggedValue1.getTag(), taggedValue2.getTag()) && StringUtils.equalsIgnoreCase(taggedValue1.getValue(), taggedValue2.getValue());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TdExpression && b instanceof TdExpression) {
        TdExpression tdExpression1 = (TdExpression) a;
        TdExpression tdExpression2 = (TdExpression) b;
        isSame = StringUtils.equalsIgnoreCase(tdExpression1.getLanguage(), tdExpression2.getLanguage()) && StringUtils.equalsIgnoreCase(tdExpression1.getBody(), tdExpression2.getBody());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof TdSqlDataType && b instanceof TdSqlDataType) {
        TdSqlDataType tdExpression1 = (TdSqlDataType) a;
        TdSqlDataType tdExpression2 = (TdSqlDataType) b;
        isSame = StringUtils.equalsIgnoreCase(tdExpression1.getName(), tdExpression2.getName());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof MetadataColumn && b instanceof MetadataColumn) {
        // Added yyin TDQ-8360
        MetadataColumn metaColumn1 = (MetadataColumn) a;
        MetadataColumn metaColumn2 = (MetadataColumn) b;
        isSame = StringUtils.equalsIgnoreCase(metaColumn1.getLabel(), metaColumn2.getLabel());
        return isSame ? 0 : Double.MAX_VALUE;
    } else if (a instanceof MetadataTable && b instanceof MetadataTable) {
        MetadataTable mTable1 = (MetadataTable) a;
        MetadataTable mTable2 = (MetadataTable) b;
        isSame = StringUtils.equalsIgnoreCase(mTable1.getLabel(), mTable2.getLabel());
        return isSame ? 0 : Double.MAX_VALUE;
    }
    return super.distance(inProgress, a, b);
}
Also used : MetadataColumn(org.talend.core.model.metadata.builder.connection.MetadataColumn) TdTable(org.talend.cwm.relational.TdTable) TdColumn(org.talend.cwm.relational.TdColumn) TdView(org.talend.cwm.relational.TdView) TdExpression(org.talend.cwm.relational.TdExpression) TaggedValue(orgomg.cwm.objectmodel.core.TaggedValue) Schema(orgomg.cwm.resource.relational.Schema) MetadataTable(org.talend.core.model.metadata.MetadataTable) DatabaseConnection(org.talend.core.model.metadata.builder.connection.DatabaseConnection) TdSqlDataType(org.talend.cwm.relational.TdSqlDataType) Catalog(orgomg.cwm.resource.relational.Catalog)

Example 9 with TdView

use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.

the class RepositoryNodeHelper method filterViews.

/**
 * DOC klliu Comment method "filterViews".
 *
 * @param views
 * @param columnSetPattern
 * @return
 */
public static List<TdView> filterViews(List<TdView> views, String columnSetPattern) {
    // $NON-NLS-1$
    String[] patterns = cleanPatterns(columnSetPattern.split(","));
    List<NamedColumnSet> filterMatchingColumnSets = filterMatchingColumnSets(views, patterns);
    List<TdView> filterViews = new ArrayList<TdView>();
    for (NamedColumnSet columnSet : filterMatchingColumnSets) {
        TdView view = (TdView) columnSet;
        filterViews.add(view);
    }
    return filterViews;
}
Also used : TdView(org.talend.cwm.relational.TdView) ArrayList(java.util.ArrayList) NamedColumnSet(orgomg.cwm.resource.relational.NamedColumnSet)

Example 10 with TdView

use of org.talend.cwm.relational.TdView in project tdq-studio-se by Talend.

the class DBViewFolderRepNode method createViewRepositoryNode.

/**
 * DOC klliu Comment method "createTableRepositoryNode".
 *
 * @param tables
 */
private void createViewRepositoryNode(List<TdView> views, List<IRepositoryNode> node) {
    if (views != null) {
        for (TdView view : views) {
            // create view object
            TdViewRepositoryObject metadataView = new TdViewRepositoryObject(viewObject, view);
            metadataView.setTableName(view.getName());
            metadataView.setLabel(view.getName());
            metadataView.setId(view.getName());
            // create a node for ui
            DBViewRepNode viewNode = new DBViewRepNode(metadataView, this, ENodeType.TDQ_REPOSITORY_ELEMENT, getProject());
            viewNode.setProperties(EProperties.LABEL, ERepositoryObjectType.METADATA_CON_TABLE);
            viewNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_CON_VIEW);
            metadataView.setRepositoryNode(viewNode);
            node.add(viewNode);
        }
    }
}
Also used : TdView(org.talend.cwm.relational.TdView) TdViewRepositoryObject(org.talend.core.repository.model.repositoryObject.TdViewRepositoryObject)

Aggregations

TdView (org.talend.cwm.relational.TdView)26 TdTable (org.talend.cwm.relational.TdTable)15 ArrayList (java.util.ArrayList)9 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)9 TdColumn (org.talend.cwm.relational.TdColumn)8 IRepositoryNode (org.talend.repository.model.IRepositoryNode)7 RepositoryNode (org.talend.repository.model.RepositoryNode)7 Catalog (orgomg.cwm.resource.relational.Catalog)7 Test (org.junit.Test)5 TdViewRepositoryObject (org.talend.core.repository.model.repositoryObject.TdViewRepositoryObject)5 Schema (orgomg.cwm.resource.relational.Schema)5 Connection (org.talend.core.model.metadata.builder.connection.Connection)4 MetadataColumn (org.talend.core.model.metadata.builder.connection.MetadataColumn)4 DQRepositoryNode (org.talend.dq.nodes.DQRepositoryNode)4 Package (orgomg.cwm.objectmodel.core.Package)4 EObject (org.eclipse.emf.ecore.EObject)3 MetadataCatalogRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataCatalogRepositoryObject)3 MetadataColumnRepositoryObject (org.talend.core.repository.model.repositoryObject.MetadataColumnRepositoryObject)3 TdTableRepositoryObject (org.talend.core.repository.model.repositoryObject.TdTableRepositoryObject)3 DBViewRepNode (org.talend.dq.nodes.DBViewRepNode)3