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; ...@@ -7,6 +7,7 @@ import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import java.io.BufferedInputStream; import java.io.BufferedInputStream;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.net.MalformedURLException; import java.net.MalformedURLException;
...@@ -27,7 +28,7 @@ public class ValidatorGeneratorTest { ...@@ -27,7 +28,7 @@ public class ValidatorGeneratorTest {
String output = "[YOUR CDA PATH]"; String output = "[YOUR CDA PATH]";
String mvn = "[YOUR MVN PATH]"; String mvn = "[YOUR MVN PATH]";
try { 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); org.junit.Assert.assertTrue(validator.getValidatorBinaryPath() != null);
System.out.println(validator); System.out.println(validator);
} catch (ValidatorGenerationException | MalformedURLException e) { } catch (ValidatorGenerationException | MalformedURLException e) {
......
...@@ -19,7 +19,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP ...@@ -19,7 +19,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP
this.processConstraints(ChoiceDefinitionUtil.getConstraints(t)); this.processConstraints(ChoiceDefinitionUtil.getConstraints(t));
this.processDescs(t.getDesc()); this.processDescs(t.getDesc());
//elements are processed according to the predicates type //elements are processed according to the predicates type
//this.processElements(ChoiceDefinitionUtil.getElements(t)); this.processElements(ChoiceDefinitionUtil.getElements(t));
this.processIncludes(ChoiceDefinitionUtil.getIncludes(t)); this.processIncludes(ChoiceDefinitionUtil.getIncludes(t));
this.processMaximumMultiplicity(t.getMaximumMultiplicity()); this.processMaximumMultiplicity(t.getMaximumMultiplicity());
this.processMinimumMultiplicity(t.getMinimumMultiplicity()); this.processMinimumMultiplicity(t.getMinimumMultiplicity());
...@@ -27,7 +27,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP ...@@ -27,7 +27,7 @@ public abstract class ChoiceDefinitionProcessorImpl implements ChoiceDefinitionP
this.processItem(t.getItem()); this.processItem(t.getItem());
//Comment next line to disable processing of the unsported HL7 choices specs //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; ...@@ -4,6 +4,8 @@ package net.ihe.gazelle.tempgen.action;
import net.ihe.gazelle.goc.uml.utils.XMIUtil; import net.ihe.gazelle.goc.uml.utils.XMIUtil;
import net.ihe.gazelle.goc.xmi.XMI; import net.ihe.gazelle.goc.xmi.XMI;
import net.ihe.gazelle.goc.xmi.XMIMarshaller; 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.GeneralFlattenDecor;
import net.ihe.gazelle.tempgen.flatten.action.RulesCleaner; import net.ihe.gazelle.tempgen.flatten.action.RulesCleaner;
import net.ihe.gazelle.tempgen.inc.action.IncludeFlattener; import net.ihe.gazelle.tempgen.inc.action.IncludeFlattener;
...@@ -19,6 +21,8 @@ import javax.xml.bind.JAXBException; ...@@ -19,6 +21,8 @@ import javax.xml.bind.JAXBException;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.InputStream; import java.io.InputStream;
import java.net.URL; import java.net.URL;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/** /**
* @author Abderrazek Boufahja * @author Abderrazek Boufahja
...@@ -138,6 +142,30 @@ public class HL7TemplatesConverter { ...@@ -138,6 +142,30 @@ public class HL7TemplatesConverter {
XMI xmi = XMIUtil.createXMI(prefix); XMI xmi = XMIUtil.createXMI(prefix);
//The entrypoint to convert the decor to OCL! //The entrypoint to convert the decor to OCL!
(new DecorAnalyzer()).process(decor, xmi, Boolean.valueOf(ignoreTemplateIdRequirements),ignoreChoicesPredicates); (new DecorAnalyzer()).process(decor, xmi, Boolean.valueOf(ignoreTemplateIdRequirements),ignoreChoicesPredicates);
//Skip incorrect OCL
clearXMI(xmi);
return 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