Search in sources :

Example 46 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class MyOrRegexIndicator method prepare.

@Override
public boolean prepare() {
    String paramValue;
    Pattern pattern;
    if (parameters != null) {
        final Domain dataValidDomain = parameters.getIndicatorValidDomain();
        if (dataValidDomain != null) {
            patternList.clear();
            for (JavaUDIIndicatorParameter param : dataValidDomain.getJavaUDIIndicatorParameter()) {
                if (param != null) {
                    if (param.getKey().startsWith("pattern")) {
                        paramValue = param.getValue();
                        pattern = Pattern.compile(paramValue);
                        patternList.add(pattern);
                    }
                }
            }
        }
    }
    return super.prepare();
}
Also used : Pattern(java.util.regex.Pattern) JavaUDIIndicatorParameter(org.talend.dataquality.domain.JavaUDIIndicatorParameter) Domain(org.talend.dataquality.domain.Domain)

Example 47 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class AnalysisWriter method addResourceContent.

@Override
public void addResourceContent(Resource resource, ModelElement element) {
    super.addResourceContent(resource, element);
    if (resource != null) {
        EList<EObject> resourceContents = resource.getContents();
        EList<Domain> dataFilter = AnalysisHelper.getDataFilter((Analysis) element);
        if (dataFilter != null) {
            // in the analysis file.
            for (Domain domain : dataFilter) {
                if (!resourceContents.contains(domain)) {
                    resourceContents.add(domain);
                }
            }
        }
    }
}
Also used : EObject(org.eclipse.emf.ecore.EObject) InternalEObject(org.eclipse.emf.ecore.InternalEObject) Domain(org.talend.dataquality.domain.Domain)

Example 48 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class UDIFactory method createUserDefIndicator.

/**
 * DOC xqliu Comment method "createUserDefIndicator".
 *
 * @param indicatorDefinition
 * @param pattern
 * @return
 */
public static Indicator createUserDefIndicator(IndicatorDefinition indicatorDefinition, Pattern pattern) {
    UserDefIndicator indicator = IndicatorSqlFactory.eINSTANCE.createUserDefIndicator();
    IndicatorParameters indicParams = IndicatorsFactory.eINSTANCE.createIndicatorParameters();
    Domain validData = DomainFactory.eINSTANCE.createDomain();
    validData.getPatterns().add(pattern);
    indicParams.setDataValidDomain(validData);
    indicator.setParameters(indicParams);
    indicator.setName(UDIHelper.getMatchingIndicatorName(indicatorDefinition, pattern));
    return indicator;
}
Also used : IndicatorParameters(org.talend.dataquality.indicators.IndicatorParameters) Domain(org.talend.dataquality.domain.Domain) UserDefIndicator(org.talend.dataquality.indicators.sql.UserDefIndicator)

Example 49 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class AnalysisHandleTest method testUpdate.

/**
 * Test method for
 * {@link org.talend.dataprofiler.core.ui.action.actions.handle.AnalysisDuplicateHandle#update(orgomg.cwm.objectmodel.core.ModelElement, orgomg.cwm.objectmodel.core.ModelElement)}
 * .
 */
@Test
public void testUpdate() {
    // $NON-NLS-1$
    Analysis newAnalysis = AnalysisHelper.createAnalysis("new ana");
    AnalysisParameters parameters = AnalysisFactory.eINSTANCE.createAnalysisParameters();
    newAnalysis.setParameters(parameters);
    // make the new analysis use the old domain
    EList<Domain> oldDataFilters = oldAnalysis.getParameters().getDataFilter();
    assertEquals(2, oldDataFilters.size());
    EList<Domain> newFilter = parameters.getDataFilter();
    for (Domain domain : oldDataFilters) {
        newFilter.add(domain);
    }
    ModelElement copiedAna = handle.update(oldAnalysis, newAnalysis);
    EList<Domain> newDataFilters = ((Analysis) copiedAna).getParameters().getDataFilter();
    assertEquals(2, newDataFilters.size());
    // after update, the old domain should be replaced by a new one, but with same body& language
    for (int i = 0; i < newDataFilters.size(); i++) {
        Domain domain = newDataFilters.get(i);
        Domain oldDomain = oldDataFilters.get(i);
        Assert.assertNotSame(oldDomain, domain);
        // $NON-NLS-1$
        assertTrue(domain.getName().equals("Analysis Data Filter"));
        // the expressions are different instances, with same boby&language.
        if (domain.getRanges() != null && oldDomain.getRanges() != null) {
            Expression ex = domain.getRanges().get(0).getExpressions().getExpression();
            Expression oldex = oldDomain.getRanges().get(0).getExpressions().getExpression();
            Assert.assertNotSame(oldex, ex);
            assertTrue(ex.getBody().equals(oldex.getBody()));
            assertTrue(ex.getLanguage().equals(oldex.getLanguage()));
        }
    }
    // check the patterns
    String tablePattern = DomainHelper.getTablePattern(newDataFilters);
    assertEquals(TABLE_PATTERN_FILTER, tablePattern);
    String viewPattern = DomainHelper.getViewPattern(newDataFilters);
    assertEquals(VIEW_PATTERN_FILTER, viewPattern);
}
Also used : ModelElement(orgomg.cwm.objectmodel.core.ModelElement) RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) Expression(orgomg.cwm.objectmodel.core.Expression) Analysis(org.talend.dataquality.analysis.Analysis) AnalysisParameters(org.talend.dataquality.analysis.AnalysisParameters) Domain(org.talend.dataquality.domain.Domain) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Example 50 with Domain

use of org.talend.dataquality.domain.Domain in project tdq-studio-se by Talend.

the class AnalysisHandleTest method setUp.

/**
 * DOC yyin Comment method "setUp".
 *
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
    // init the analysis
    // $NON-NLS-1$
    oldAnalysis = AnalysisHelper.createAnalysis("Analysis Data Filter");
    AnalysisParameters parameters = AnalysisFactory.eINSTANCE.createAnalysisParameters();
    oldAnalysis.setParameters(parameters);
    // add two filters which type is ranges
    // $NON-NLS-1$
    AnalysisHelper.setStringDataFilter(oldAnalysis, "filter1", 0);
    // $NON-NLS-1$
    AnalysisHelper.setStringDataFilter(oldAnalysis, "filter2", 1);
    // add one filter which type is pattern and contains two patterns
    EList<Domain> dataFilters = oldAnalysis.getParameters().getDataFilter();
    RegularExpression tablePattern = BooleanExpressionHelper.createRegularExpression(null, TABLE_PATTERN_FILTER);
    // $NON-NLS-1$
    addPatternToDomain(dataFilters.get(0), tablePattern, "Table Pattern");
    RegularExpression viewPattern = BooleanExpressionHelper.createRegularExpression(null, VIEW_PATTERN_FILTER);
    // $NON-NLS-1$
    addPatternToDomain(dataFilters.get(0), viewPattern, "View Pattern");
    // create a handle
    IRepositoryNode node = mock(IRepositoryNode.class);
    IRepositoryViewObject object = mock(IRepositoryViewObject.class);
    when(node.getObject()).thenReturn(object);
    Property pro = mock(Property.class);
    when(object.getProperty()).thenReturn(pro);
    IPath itemPath = mock(IPath.class);
    PowerMockito.mockStatic(WorkbenchUtils.class);
    when(WorkbenchUtils.getFilePath(node)).thenReturn(itemPath);
    PowerMockito.mockStatic(ResourceManager.class);
    IWorkspaceRoot root = mock(IWorkspaceRoot.class);
    when(ResourceManager.getRoot()).thenReturn(root);
    when(root.getFile(itemPath)).thenReturn(null);
    PowerMockito.mockStatic(RepositoryNodeHelper.class);
    when(RepositoryNodeHelper.getModelElementFromRepositoryNode(node)).thenReturn(oldAnalysis);
    handle = new AnalysisDuplicateHandle();
}
Also used : RegularExpression(org.talend.dataquality.domain.pattern.RegularExpression) IRepositoryNode(org.talend.repository.model.IRepositoryNode) IPath(org.eclipse.core.runtime.IPath) IWorkspaceRoot(org.eclipse.core.resources.IWorkspaceRoot) AnalysisParameters(org.talend.dataquality.analysis.AnalysisParameters) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) Domain(org.talend.dataquality.domain.Domain) Property(org.talend.core.model.properties.Property) Before(org.junit.Before)

Aggregations

Domain (org.talend.dataquality.domain.Domain)68 IndicatorParameters (org.talend.dataquality.indicators.IndicatorParameters)27 Pattern (org.talend.dataquality.domain.pattern.Pattern)16 RegularExpression (org.talend.dataquality.domain.pattern.RegularExpression)14 Expression (orgomg.cwm.objectmodel.core.Expression)14 TdColumn (org.talend.cwm.relational.TdColumn)13 TdExpression (org.talend.cwm.relational.TdExpression)13 RangeRestriction (org.talend.dataquality.domain.RangeRestriction)13 Test (org.junit.Test)12 Analysis (org.talend.dataquality.analysis.Analysis)12 ArrayList (java.util.ArrayList)10 ReturnCode (org.talend.utils.sugars.ReturnCode)9 Indicator (org.talend.dataquality.indicators.Indicator)6 PatternMatchingIndicator (org.talend.dataquality.indicators.PatternMatchingIndicator)6 IRepositoryNode (org.talend.repository.model.IRepositoryNode)6 ModelElement (orgomg.cwm.objectmodel.core.ModelElement)6 Connection (org.talend.core.model.metadata.builder.connection.Connection)5 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)5 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)5 AnalysisContext (org.talend.dataquality.analysis.AnalysisContext)5