Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 42741abe authored by nab's avatar nab
Browse files

bug fix for dgsante in generation the &ocl

parent e45c811a
No related branches found
No related tags found
3 merge requests!30Develop,!27E hdsi 3.0,!26Bug fix dgsante
Pipeline #526306 passed
......@@ -7,6 +7,7 @@ import org.junit.Ignore;
import org.junit.Test;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
......@@ -27,7 +28,7 @@ public class ValidatorGeneratorTest {
String output = "[YOUR CDA PATH]";
String mvn = "[YOUR MVN PATH]";
try {
GeneratedValidator validator = validatorGenerator.generateValidator(new URL(bbr),output,mvn);
GeneratedValidator validator = validatorGenerator.generateValidator(new File(bbr).toURI().toURL(),output,mvn);
org.junit.Assert.assertTrue(validator.getValidatorBinaryPath() != null);
System.out.println(validator);
} catch (ValidatorGenerationException | MalformedURLException e) {
......
......@@ -19,7 +19,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP
this.processConstraints(ChoiceDefinitionUtil.getConstraints(t));
this.processDescs(t.getDesc());
//elements are processed according to the predicates type
//this.processElements(ChoiceDefinitionUtil.getElements(t));
this.processElements(ChoiceDefinitionUtil.getElements(t));
this.processIncludes(ChoiceDefinitionUtil.getIncludes(t));
this.processMaximumMultiplicity(t.getMaximumMultiplicity());
this.processMinimumMultiplicity(t.getMinimumMultiplicity());
......@@ -27,7 +27,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP
this.processItem(t.getItem());
//Comment next line to disable processing of the unsported HL7 choices specs
this.processPredicates(ChoiceDefinitionUtil.getElements(t));
//this.processPredicates(ChoiceDefinitionUtil.getElements(t));
}
}
......
......@@ -4,6 +4,8 @@ package net.ihe.gazelle.tempgen.action;
import net.ihe.gazelle.goc.uml.utils.XMIUtil;
import net.ihe.gazelle.goc.xmi.XMI;
import net.ihe.gazelle.goc.xmi.XMIMarshaller;
import net.ihe.gazelle.goc.xmm.OwnedRule;
import net.ihe.gazelle.goc.xmm.PackagedElement;
import net.ihe.gazelle.tempgen.flatten.action.GeneralFlattenDecor;
import net.ihe.gazelle.tempgen.flatten.action.RulesCleaner;
import net.ihe.gazelle.tempgen.inc.action.IncludeFlattener;
......@@ -19,6 +21,8 @@ import javax.xml.bind.JAXBException;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Abderrazek Boufahja
......@@ -138,6 +142,30 @@ public class HL7TemplatesConverter {
XMI xmi = XMIUtil.createXMI(prefix);
//The entrypoint to convert the decor to OCL!
(new DecorAnalyzer()).process(decor, xmi, Boolean.valueOf(ignoreTemplateIdRequirements),ignoreChoicesPredicates);
//Skip incorrect OCL
clearXMI(xmi);
return xmi;
}
private void clearXMI(XMI xmi){
for(PackagedElement packagedElement:xmi.getModel().getPackagedElement()){
for(int ownedRule=0;ownedRule<packagedElement.getOwnedRule().size();ownedRule++) {
if(cleanOCL(packagedElement.getOwnedRule().get(ownedRule))==null) {
packagedElement.getOwnedRule().remove(packagedElement.getOwnedRule().get(ownedRule));
TamlHandler.removeTAML(packagedElement.getOwnedRule().get(ownedRule));
}
}
}
}
private OwnedRule cleanOCL(OwnedRule ownedRule){
String mat= ownedRule.getSpecification().getBody();
String matr= "\\)[A-Za-z]+";
Pattern pattern = Pattern.compile(matr);
Matcher matcher = pattern.matcher(ownedRule.getSpecification().getBody());
if(!matcher.find()){
return ownedRule;
}
return null;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment