private void initializeIndicator(Indicator indicator, NamedColumnSet set) { indicator.setAnalyzedElement(set); // Make sure that indicator definition is set if (indicator.getIndicatorDefinition() == null) { DefinitionHandler.getInstance().setDefaultIndicatorDefinition(indicator); } // xqliu case of composite indicators, add children to result. if (indicator instanceof CompositeIndicator) { for (Indicator child : ((CompositeIndicator) indicator).getChildIndicators()) { initializeIndicator(child, set); // recurse } } }
@Deprecated public static Indicator createIndicator(IndicatorDefinition indicatorDefinition) { IndicatorCategory category = UDIHelper.getUDICategory(indicatorDefinition); Indicator indicator = null; if (category != null) { if (category.equals(DefinitionHandler.getInstance().getUserDefinedCountIndicatorCategory())) { indicator = IndicatorsFactory.eINSTANCE.createRowCountIndicator(); } else if (category.equals( DefinitionHandler.getInstance().getUserDefinedMatchIndicatorCategory())) { indicator = IndicatorsFactory.eINSTANCE.createRegexpMatchingIndicator(); } else if (category.equals( DefinitionHandler.getInstance().getUserDefinedFrequencyIndicatorCategory())) { indicator = IndicatorsFactory.eINSTANCE.createFrequencyIndicator(); } if (indicator != null) { IndicatorParameters indicParams = IndicatorsFactory.eINSTANCE.createIndicatorParameters(); indicator.setParameters(indicParams); indicator.setName(indicatorDefinition.getName()); } } return indicator; }
/** * DOC klliu Comment method "createAndStoreParserRule". * * @param prParameters * @param selectionFolder */ public static void createAndStoreParserRule( ParserRuleParameters prParameters, IFolder selectionFolder, String name) { DqRuleBuilder ruleBuilder = new DqRuleBuilder(); boolean ruleInitialized = ruleBuilder.initializeParserRuleBuilder(prParameters.label); if (ruleInitialized) { ParserRule parserRule = ruleBuilder.getParserRule(); parserRule.setName(name); TaggedValueHelper.setValidStatus(true, parserRule); List<ParserRuleTdExpresstion> prExpresstions = prParameters.getPrExpresstions(); for (ParserRuleTdExpresstion prtde : prExpresstions) { parserRule.addExpression(prtde.name, prtde.type, prtde.value); } IndicatorCategory ruleIndicatorCategory = DefinitionHandler.getInstance().getDQRuleIndicatorCategory(); if (ruleIndicatorCategory != null && !parserRule.getCategories().contains(ruleIndicatorCategory)) { parserRule.getCategories().add(ruleIndicatorCategory); } ElementWriterFactory.getInstance().createdRuleWriter().create(parserRule, selectionFolder); } }
/** * DOC xqliu Comment method "importIndicatorToStucture". * * @param importObject * @param selectionFolder * @param skip * @param rename * @param importItemName * @return */ public static List<ReturnCode> importIndicatorToStucture( ImportObject importObject, IFolder selectionFolder, boolean skip, boolean rename, String importItemName) { List<ReturnCode> information = new ArrayList<ReturnCode>(); Set<String> names = UDIHelper.getAllIndicatorNames(selectionFolder); File importFile = importObject.getObjFile(); String fileExtName = getFileExtName(importFile); if ("csv".equalsIgnoreCase(fileExtName)) { // $NON-NLS-1$ String name = PluginConstant.EMPTY_STRING; try { CsvReader reader = new CsvReader(new FileReader(importFile), CURRENT_SEPARATOR); // MOD zshen EscapeMode default is CsvReader.ESCAPE_MODE_DOUBLED reader.setTextQualifier(TEXT_QUAL); reader.setUseTextQualifier(USE_TEXT_QUAL); reader.readHeaders(); java.text.SimpleDateFormat simpleDateFormat = new java.text.SimpleDateFormat("yyyyMMddHHmmssSSS"); // $NON-NLS-1$ while (reader.readRecord()) { name = reader.get(PatternToExcelEnum.Label.getLiteral()); if (names.contains(name)) { if (skip) { information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.Imported", name), false)); //$NON-NLS-1$ continue; } if (rename) { name = name + "(" + simpleDateFormat.format(new Date()) + Math.random() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } } UDIParameters udiParameters = new ImportFactory().new UDIParameters(); udiParameters.name = name; udiParameters.auther = reader.get(PatternToExcelEnum.Author.getLiteral()); udiParameters.description = reader.get(PatternToExcelEnum.Description.getLiteral()); udiParameters.purpose = reader.get(PatternToExcelEnum.Purpose.getLiteral()); udiParameters.relativePath = reader.get(PatternToExcelEnum.RelativePath.getLiteral()); udiParameters.category = reader.get(PatternToExcelEnum.Category.getLiteral()); udiParameters.javaClassName = reader.get(PatternToExcelEnum.JavaClassName.getLiteral()); udiParameters.javaJarPath = reader.get(PatternToExcelEnum.JavaJarPath.getLiteral()); String[] headers = reader.getHeaders(); String[] columnsValue = reader.getValues(); HashMap<String, String> record = new HashMap<String, String>(); for (int i = 0; i < headers.length; i++) { if (columnsValue[i] != null && columnsValue[i].length() > 0) { record.put(headers[i], columnsValue[i]); } } for (PatternLanguageType languagetype : PatternLanguageType.values()) { String cellStr = record.get(languagetype.getExcelEnum().getLiteral()); if (cellStr != null && !cellStr.equals("\"\"")) { // $NON-NLS-1$ udiParameters.regex.put(languagetype.getLiteral(), trimQuote(cellStr)); } } udiParameters.setParaMap(buildIndDefPara(record)); TypedReturnCode<Object> create = createAndStoreUDI(udiParameters, selectionFolder); if (create.isOk()) { names.add(name); // add the suscess message to display. information.add( new ReturnCode( DefaultMessagesImpl.getString( "ImportFactory.importedSucess" //$NON-NLS-1$ , ((TDQItem) create.getObject()).getProperty().getDisplayName(), selectionFolder.getProjectRelativePath().toString()), true)); } else { throw new TalendInternalPersistenceException(create.getMessage()); } } reader.close(); } catch (Exception e) { log.error(e, e); information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.importedFailed", name), false)); //$NON-NLS-1$ } } if ("xls".equalsIgnoreCase(fileExtName)) { // $NON-NLS-1$ Map<Integer, PatternLanguageType> expressionMap = new HashMap<Integer, PatternLanguageType>(); String contents = PluginConstant.EMPTY_STRING; try { WorkbookSettings settings = new WorkbookSettings(); settings.setEncoding("UTF-8"); // $NON-NLS-1$ Workbook rwb = Workbook.getWorkbook(importFile, settings); Sheet[] sheets = rwb.getSheets(); for (Sheet sheet : sheets) { Cell[] headerRow = sheet.getRow(0); for (Cell cell : headerRow) { for (PatternLanguageType languageType : PatternLanguageType.values()) { if (cell.getContents().equals(languageType.getExcelEnum().getLiteral())) { expressionMap.put(cell.getColumn(), languageType); } } } for (int i = 1; i < sheet.getRows(); i++) { Cell[] row = sheet.getRow(i); Cell cell = row[0]; if (CellType.LABEL.equals(cell.getType())) { contents = cell.getContents(); if (names.contains(contents)) { if (skip) { continue; } if (rename) { contents = contents + "(" + new Date() + ")"; // $NON-NLS-1$ //$NON-NLS-2$ } } UDIParameters udiParameters = new ImportFactory().new UDIParameters(); udiParameters.name = contents; udiParameters.auther = row[6].getContents(); udiParameters.description = row[2].getContents(); udiParameters.purpose = row[1].getContents(); udiParameters.status = DevelopmentStatus.DRAFT.getLiteral(); udiParameters.category = row[16].getContents(); for (int columnIndex : expressionMap.keySet()) { String rowContent = row[columnIndex].getContents(); if (!rowContent.equals("")) { // $NON-NLS-1$ udiParameters.regex.put(expressionMap.get(columnIndex).getLiteral(), rowContent); } } createAndStoreUDI(udiParameters, selectionFolder); names.add(contents); information.add( new ReturnCode( DefaultMessagesImpl.getString( "ImportFactory.importedSucess" //$NON-NLS-1$ , contents), true)); } } } rwb.close(); } catch (Exception e) { log.error(e, e); information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.importedFailed", contents), false)); //$NON-NLS-1$ } } // MOD qiongli 2011-11-28 TDQ-4038.consider to import the definition file. if (FactoriesUtil.DEFINITION.equalsIgnoreCase(fileExtName)) { String propFilePath = importFile .getPath() .replaceFirst( PluginConstant.DOT_STRING + fileExtName, PluginConstant.DOT_STRING + FactoriesUtil.PROPERTIES_EXTENSION); File propFile = new File(propFilePath); // just import the definition file which have the realted Property file. if (!propFile.exists()) { return information; } String name = importFile.getName(); try { if (names.contains(name)) { if (skip) { information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.Imported", name), false)); //$NON-NLS-1$ return information; } if (rename) { name = name + "(" + new Date() + Math.random() + ")"; // $NON-NLS-1$ //$NON-NLS-2$ } } IFile elementFile = selectionFolder.getFile(name); if (!elementFile.exists()) { elementFile.create(new FileInputStream(importFile), false, null); ModelElement modelElement = ModelElementFileFactory.getModelElement(elementFile); if (modelElement != null) { ElementWriterFactory.getInstance() .createIndicatorDefinitionWriter() .create(modelElement, selectionFolder); DefinitionHandler.getInstance().reloadIndicatorsDefinitions(); names.add(name); information.add( new ReturnCode( DefaultMessagesImpl.getString( "ImportFactory.importedSucess" //$NON-NLS-1$ , name), true)); } } } catch (Exception e) { log.error(e); information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.importedFailed", name), false)); //$NON-NLS-1$ } } importObject.copyJarFiles(); // ADD xqliu 2012-04-27 TDQ-5149 checkImportEvent(importItemName, information); // ~ TDQ-5149 return information; }