/** * DOC xqliu Comment method "createAndStoreUDI". * * @param parameters * @param selectionFolder */ private static TypedReturnCode<Object> createAndStoreUDI( UDIParameters parameters, IFolder selectionFolder) { UDIndicatorDefinition indDef = UDIHelper.createUDI( parameters.name, parameters.auther, parameters.description, parameters.purpose, parameters.status, parameters.category, parameters.javaClassName, parameters.javaJarPath); for (String key : parameters.regex.keySet()) { TdExpression expression = BooleanExpressionHelper.createTdExpression(key, parameters.regex.get(key)); indDef.getSqlGenericExpression().add(expression); } boolean validStatus = UDIHelper.isUDIValid(indDef); TaggedValueHelper.setValidStatus(validStatus, indDef); Map<String, String> paraMap = parameters.getParaMap(); if (!paraMap.isEmpty()) { for (String key : paraMap.keySet()) { String value = paraMap.get(key); IndicatorDefinitionParameter idPara = DefinitionFactory.eINSTANCE.createIndicatorDefinitionParameter(); idPara.setKey(key); idPara.setValue(value); indDef.getIndicatorDefinitionParameter().add(idPara); } } try { String[] folderNames = parameters.relativePath.split("/"); // $NON-NLS-1$ for (String folderName : folderNames) { IFolder folder = selectionFolder.getFolder(folderName); if (!folder.exists()) { folder.create(false, true, null); } selectionFolder = folder; } } catch (CoreException e) { log.error(e, e); } indDef = UDIUtils.createDefaultDrillDownList(indDef); return ElementWriterFactory.getInstance() .createIndicatorDefinitionWriter() .create(indDef, selectionFolder); }