/** * 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 "importParserRuleToStucture". * * @param importObject * @param selectionFolder * @param skip * @param rename * @param importItemName * @return */ public static List<ReturnCode> importParserRuleToStucture( ImportObject importObject, IFolder selectionFolder, boolean skip, boolean rename, String importItemName) { List<ReturnCode> information = new ArrayList<ReturnCode>(); Set<String> names = DQRuleResourceFileHelper.getInstance().getAllParserRlueNames(selectionFolder); ParserRuleParameters prParameters = new ImportFactory().new ParserRuleParameters(); File importFile = importObject.getObjFile(); String fileExtName = getFileExtName(importFile); if ("csv".equalsIgnoreCase(fileExtName)) { // $NON-NLS-1$ String name = ""; // $NON-NLS-1$ boolean isNeedToCreate = true; try { CsvReader reader = new CsvReader(new FileReader(importFile), CURRENT_SEPARATOR); reader.setEscapeMode(CsvReader.ESCAPE_MODE_BACKSLASH); 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(ParserRuleToExcelEnum.Label.getLiteral()); if (names.contains(name)) { if (skip) { information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.ParserRuleImported", name), false)); //$NON-NLS-1$ isNeedToCreate = false; break; } if (rename) { name = name + "(" + simpleDateFormat.format(new Date()) + Math.random() + ")"; //$NON-NLS-1$ //$NON-NLS-2$ } } prParameters.label = reader.get(ParserRuleToExcelEnum.Label.getLiteral()); prParameters.auther = reader.get(ParserRuleToExcelEnum.Author.getLiteral()); prParameters.description = reader.get(ParserRuleToExcelEnum.Description.getLiteral()); prParameters.purpose = reader.get(ParserRuleToExcelEnum.Purpose.getLiteral()); ParserRuleTdExpresstion prExpresstion = new ImportFactory().new ParserRuleTdExpresstion(); prExpresstion.name = addQual(reader.get(ParserRuleToExcelEnum.Name.getLiteral())); String type = reader.get(ParserRuleToExcelEnum.Type.getLiteral()); prExpresstion.type = type.isEmpty() || type.equals("\"\"") || type == null ? reader //$NON-NLS-1$ .get(ParserRuleToExcelEnum.Language.getLiteral()) : type; String value = addQual(reader.get(ParserRuleToExcelEnum.Value.getLiteral())); prExpresstion.value = value.isEmpty() || value.equals("") || value == null ? addQual( reader //$NON-NLS-1$ .get(ParserRuleToExcelEnum.Body.getLiteral())) : value; prParameters.prExpresstions.add(prExpresstion); } if (isNeedToCreate) { // if (name.trim().equals("")) { // $NON-NLS-1$ information.add( new ReturnCode( DefaultMessagesImpl.getString( "ImportFactory.importedEmptyParserRule" //$NON-NLS-1$ ), true)); } else { names.add(name); information.add( new ReturnCode( DefaultMessagesImpl.getString( "ImportFactory.importedParserRuleSucess" //$NON-NLS-1$ , name, selectionFolder.getProjectRelativePath().toString()), true)); createAndStoreParserRule(prParameters, selectionFolder, name); } } reader.close(); } catch (Exception e) { log.error(e, e); information.add( new ReturnCode( DefaultMessagesImpl.getString("ImportFactory.importedParserRuleFailed", name), false)); //$NON-NLS-1$ } } importObject.copyJarFiles(); // ADD xqliu 2012-04-27 TDQ-5149 checkImportEvent(importItemName, information); // ~ TDQ-5149 return information; }