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();
}
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);
}
}
}
}
}
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;
}
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);
}
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();
}
Aggregations