use of org.talend.dataquality.domain.pattern.Pattern in project tdq-studio-se by Talend.
the class DomainHelper method createPattern.
/**
* Method "createPattern".
*
* @param language
* @param regexp
* @return a new pattern from the given regular expression
*/
public static Pattern createPattern(String language, String regexp) {
Pattern pattern = PatternFactory.eINSTANCE.createPattern();
pattern.getComponents().add(BooleanExpressionHelper.createRegularExpression(language, regexp));
return pattern;
}
use of org.talend.dataquality.domain.pattern.Pattern in project tdq-studio-se by Talend.
the class AnalysisHelper method getPatterns.
public static List<Pattern> getPatterns(Analysis analysis) {
List<Pattern> rets = new ArrayList<Pattern>();
EList<Indicator> indicators = analysis.getResults().getIndicators();
for (Indicator indicator : indicators) {
if (indicator instanceof PatternMatchingIndicator) {
IndicatorParameters parameters = ((PatternMatchingIndicator) indicator).getParameters();
if (null != parameters && null != parameters.getDataValidDomain()) {
rets.addAll(parameters.getDataValidDomain().getPatterns());
}
}
// MOD yyi 2010-08-03 14292 Add dependency for children indicator in Column Set analysis
if (indicator instanceof AllMatchIndicator) {
EList<RegexpMatchingIndicator> list = ((AllMatchIndicator) indicator).getCompositeRegexMatchingIndicators();
for (RegexpMatchingIndicator pattern : list) {
IndicatorParameters parameters = pattern.getParameters();
if (null != parameters && null != parameters.getDataValidDomain()) {
rets.addAll(parameters.getDataValidDomain().getPatterns());
}
}
}
// ~
}
return rets;
}
use of org.talend.dataquality.domain.pattern.Pattern in project tdq-studio-se by Talend.
the class DomainHelper method getPattern.
private static String getPattern(final Collection<Domain> dataFilters, DomainType domainType, PatternType patternType) {
if (dataFilters == null) {
return null;
}
for (Domain domain : dataFilters) {
if (!domainType.label.equals(domain.getName())) {
continue;
}
EList<Pattern> patterns = domain.getPatterns();
for (Pattern pattern : patterns) {
if (patternType.label.equals(pattern.getName())) {
PatternComponent next = pattern.getComponents().iterator().next();
if (next == null) {
continue;
} else {
RegularExpression regexp = (RegularExpression) next;
Expression expression = regexp.getExpression();
if (expression != null) {
return expression.getBody();
}
}
}
}
}
return null;
}
use of org.talend.dataquality.domain.pattern.Pattern in project tdq-studio-se by Talend.
the class ModelElementDuplicateHandle method dupAnaWithoutBuiltInPattern.
/**
* when duplicate an analysis,remove the built-in pattern. or else, the reference pattern will be copied as a built-in
* pattern.
*
* @param oldModelElement
* @return
*/
private ModelElement dupAnaWithoutBuiltInPattern(ModelElement oldModelElement) {
ModelElement newModEle = null;
if (!(oldModelElement instanceof Analysis)) {
newModEle = (ModelElement) EMFSharedResources.getInstance().copyEObject(oldModelElement);
return newModEle;
}
try {
Analysis analysis = (Analysis) oldModelElement;
EList<Indicator> indicators = analysis.getResults().getIndicators();
List<Indicator> orignalIndicators = new ArrayList<Indicator>();
orignalIndicators.addAll(indicators);
Map<Indicator, List<Pattern>> map = new HashMap<Indicator, List<Pattern>>();
// 2.after copy the analysis without built-in pattern, reset the built for the old analysis.
for (Indicator indicator : indicators) {
if (!(indicator instanceof PatternMatchingIndicator)) {
continue;
}
List<Pattern> builtInLs = new ArrayList<Pattern>();
if (indicator instanceof AllMatchIndicator) {
EList<RegexpMatchingIndicator> list = ((AllMatchIndicator) indicator).getCompositeRegexMatchingIndicators();
for (RegexpMatchingIndicator regxIndicator : list) {
builtInLs.addAll(regxIndicator.getParameters().getDataValidDomain().getBuiltInPatterns());
map.put(regxIndicator, builtInLs);
regxIndicator.getParameters().getDataValidDomain().getBuiltInPatterns().clear();
}
} else {
builtInLs.addAll(indicator.getParameters().getDataValidDomain().getBuiltInPatterns());
map.put(indicator, builtInLs);
indicator.getParameters().getDataValidDomain().getBuiltInPatterns().clear();
}
}
newModEle = (ModelElement) EMFSharedResources.getInstance().copyEObject(analysis);
for (Indicator patternInd : map.keySet()) {
patternInd.getParameters().getDataValidDomain().getBuiltInPatterns().addAll(map.get(patternInd));
}
ProxyRepositoryFactory.getInstance().getRepositoryFactoryFromProvider().getResourceManager().saveResource(analysis.eResource());
} catch (Exception e) {
LOG.error(e);
}
return newModEle;
}
use of org.talend.dataquality.domain.pattern.Pattern in project tdq-studio-se by Talend.
the class TDQPatternItemImpl method setPattern.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void setPattern(Pattern newPattern) {
Pattern oldPattern = pattern;
pattern = newPattern;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, PropertiesPackage.TDQ_PATTERN_ITEM__PATTERN, oldPattern, pattern));
}
Aggregations