diff --git a/org.polarsys.chess.smvExport/src/org/polarsys/chess/smvExport/services/SmvExportService.java b/org.polarsys.chess.smvExport/src/org/polarsys/chess/smvExport/services/SmvExportService.java index c2a805cf510497901a6353f47345dfb2e7d208c5..2af1d7690a79061a09eac33360b23308b83bffae 100644 --- a/org.polarsys.chess.smvExport/src/org/polarsys/chess/smvExport/services/SmvExportService.java +++ b/org.polarsys.chess.smvExport/src/org/polarsys/chess/smvExport/services/SmvExportService.java @@ -13,8 +13,10 @@ package org.polarsys.chess.smvExport.services; import java.io.File; import java.util.HashMap; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.emf.common.util.EList; import org.eclipse.papyrus.uml.tools.model.UmlModel; import org.eclipse.uml2.uml.Class; +import org.eclipse.uml2.uml.Property; import org.polarsys.chess.service.internal.model.ChessSystemModel; import org.polarsys.chess.smvExport.model.UMLStateMachineModel; import eu.fbk.eclipse.standardtools.StateMachineTranslatorToSmv.services.SMVTranslatorService; @@ -23,8 +25,9 @@ import eu.fbk.eclipse.standardtools.utils.DialogUtil; public class SmvExportService { private static SmvExportService instance; - - private SMVTranslatorService smvTranslatorService = SMVTranslatorService.getInstance(ChessSystemModel.getInstance(), +private ChessSystemModel chessSystemModel = ChessSystemModel.getInstance(); + + private SMVTranslatorService smvTranslatorService = SMVTranslatorService.getInstance(chessSystemModel, UMLStateMachineModel.getInstance()); private DialogUtil dialogUtil = DialogUtil.getInstance(); @@ -58,7 +61,7 @@ public class SmvExportService { } - public File exportSingleSmv(Class umlSelectedComponent, boolean showPopups, String selectedDirectory, + public String exportSingleSmv(Class umlSelectedComponent, boolean showPopups, String selectedDirectory, IProgressMonitor monitor) throws Exception { File smvFile = smvTranslatorService.exportSingleSmv(umlSelectedComponent, showPopups, selectedDirectory, @@ -68,7 +71,7 @@ public class SmvExportService { dialogUtil.showMessage_ExportBehaviourDone(smvFile.getAbsolutePath()); } - return smvFile; + return smvFile.getPath(); } @@ -86,5 +89,9 @@ public class SmvExportService { } + public boolean isLeafComponent(Class umlSelectedComponent){ + EList<Property> subComponents = chessSystemModel.getSubComponentsInstances(umlSelectedComponent); + return ((subComponents==null)||(subComponents.size()==0)); + } } diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/CompositeContractImplementationCommand.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/CompositeContractImplementationCommand.java index 5b97b198f853ca0650fd20b207fc7658b0b0d93d..7826047bc8823e5d7013b54e738203509e2a674e 100644 --- a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/CompositeContractImplementationCommand.java +++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/CompositeContractImplementationCommand.java @@ -39,7 +39,7 @@ public class CompositeContractImplementationCommand extends AbstractJobCommand { umlSelectedComponent = selectionUtil.getUmlComponentFromSelectedObject(event); umlSelectedResource = umlSelectedComponent.eResource(); isDiscreteTime = MessageTimeModelDialog.openQuestion(); - showPopups = true; + showPopups = false; smvMapFilepath = ocraDirectoryUtil.getSmvMapFilePath(); smvFilePath = nuXmvDirectoryUtil.getSmvFileDirectory(); resultFilePath = ocraDirectoryUtil.getCommandCheckImplementationResultPath(umlSelectedComponent.getName()); diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ContractImplementationCommand.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ContractImplementationCommand.java index 67b695fb609bfa7bc952039bd86a363c2d583db7..99380a3c90bb077a37c5030dc88cc9c5f64d64dc 100644 --- a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ContractImplementationCommand.java +++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ContractImplementationCommand.java @@ -10,7 +10,7 @@ ******************************************************************************/ package org.polarsys.chess.verificationService.commands; -import java.io.File; + import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.runtime.IProgressMonitor; @@ -45,7 +45,7 @@ public class ContractImplementationCommand extends AbstractJobCommand { private boolean isDiscreteTime; private boolean showPopups; private String ossFilepath; - private String smvFilePath; + private String smvFileDirectory; private String resultFilePath; @Override @@ -53,9 +53,9 @@ public class ContractImplementationCommand extends AbstractJobCommand { umlSelectedComponent = selectionUtil.getUmlComponentFromSelectedObject(event); umlSelectedResource = umlSelectedComponent.eResource(); isDiscreteTime = MessageTimeModelDialog.openQuestion(); - showPopups = true; + showPopups = false; ossFilepath = ocraDirectoryUtil.getOSSFilePath(); - smvFilePath = nuXmvDirectoryUtil.getSmvFileDirectory(); + smvFileDirectory = nuXmvDirectoryUtil.getSmvFileDirectory(); resultFilePath = ocraDirectoryUtil.getCommandCheckImplementationResultPath(umlSelectedComponent.getName()); } @@ -64,8 +64,8 @@ public class ContractImplementationCommand extends AbstractJobCommand { @Override public void execJobCommand(ExecutionEvent event, IProgressMonitor monitor) throws Exception { - File smvOutput = smvExportService.exportSingleSmv( umlSelectedComponent,showPopups,smvFilePath, monitor); - ocraExecService.executeCheckContractImplementation(umlSelectedComponent,umlSelectedResource, smvOutput, isDiscreteTime,showPopups,ossFilepath,resultFilePath,monitor); + String smvOutputPath = smvExportService.exportSingleSmv( umlSelectedComponent,showPopups,smvFileDirectory, monitor); + ocraExecService.executeCheckContractImplementation(umlSelectedComponent,umlSelectedResource, smvOutputPath, isDiscreteTime,showPopups,ossFilepath,resultFilePath,monitor); } diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ModelCheckingCommand.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ModelCheckingCommand.java index 93f6848d85d1e9d67d2b0d7cf0b38ae6fc6e2c80..018643c9b97500012d2ad4b0e87a6e29250251a8 100644 --- a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ModelCheckingCommand.java +++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/ModelCheckingCommand.java @@ -10,7 +10,7 @@ ******************************************************************************/ package org.polarsys.chess.verificationService.commands; -import java.io.File; + import java.util.HashMap; import org.eclipse.core.commands.ExecutionEvent; @@ -49,7 +49,7 @@ public class ModelCheckingCommand extends AbstractJobCommand { private Class umlSelectedComponent; private boolean showPopups; - private String smvFilePath; + private String smvFileDirectory; private boolean isDiscreteTime; private String monolithicSMVFilePath; private String resultFilePath; @@ -60,9 +60,9 @@ public class ModelCheckingCommand extends AbstractJobCommand { public void execPreJobOperations(ExecutionEvent event,IProgressMonitor monitor) throws Exception { umlSelectedComponent = selectionUtil.getUmlComponentFromSelectedObject(event); umlSelectedResource = umlSelectedComponent.eResource(); - showPopups = true; + showPopups = false; isDiscreteTime = MessageTimeModelDialog.openQuestion(); - smvFilePath = nuXmvDirectoryUtil.getSmvFileDirectory(); + smvFileDirectory = nuXmvDirectoryUtil.getSmvFileDirectory(); monolithicSMVFilePath = nuXmvDirectoryUtil.getMonolithicSMVFilePath(umlSelectedComponent.getName()); resultFilePath = nuXmvDirectoryUtil.getModelCheckingResultPath(umlSelectedComponent.getName()); smvMapFilepath = ocraDirectoryUtil.getSmvMapFilePath(); @@ -73,12 +73,18 @@ public class ModelCheckingCommand extends AbstractJobCommand { @Override public void execJobCommand(ExecutionEvent event, IProgressMonitor monitor) throws Exception { - //File smvOutput = smvExportService.exportSingleSmv( umlSelectedComponent,showPopups,smvFilePath, monitor); + String generatedSmvFilePath; + + if(smvExportService.isLeafComponent(umlSelectedComponent)){ + generatedSmvFilePath = smvExportService.exportSingleSmv( umlSelectedComponent,showPopups,smvFileDirectory, monitor); + }else{ + HashMap<String,String> smvPathComponentNameMap = smvExportService.exportSmv( umlSelectedComponent,showPopups,smvFileDirectory, monitor); + ocraExecService.createMonolithicSMV(umlSelectedComponent, umlSelectedResource, smvPathComponentNameMap, isDiscreteTime, showPopups, smvMapFilepath, monolithicSMVFilePath, monitor); + generatedSmvFilePath = monolithicSMVFilePath; + } //nuXmvExecService.executeModelChecking(smvOutput,resultFilePath); - HashMap<String,String> smvPathComponentNameMap = smvExportService.exportSmv( umlSelectedComponent,showPopups,smvFilePath, monitor); - ocraExecService.createMonolithicSMV(umlSelectedComponent, umlSelectedResource, smvPathComponentNameMap, isDiscreteTime, showPopups, smvMapFilepath, monolithicSMVFilePath, monitor); - nuXmvExecService.executeModelChecking(new File(monolithicSMVFilePath),resultFilePath); + nuXmvExecService.executeModelChecking(generatedSmvFilePath,resultFilePath); } } diff --git a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/debug/ModelCheckingOnFileCommand.java b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/debug/ModelCheckingOnFileCommand.java index ddab6b99e43a3190fdeb664206961906dd2694c9..956bff1a9f02ec8450412e79d090af47e8d8e2a1 100644 --- a/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/debug/ModelCheckingOnFileCommand.java +++ b/plugins/contracts/org.polarsys.chess.contracts.verificationService/src/org/polarsys/chess/verificationService/commands/debug/ModelCheckingOnFileCommand.java @@ -68,7 +68,7 @@ public class ModelCheckingOnFileCommand extends AbstractJobCommand { File smvFile = nuXmvDialogUtil.getSmvFileFromFileDialog(nuXmvDirectoryUtil.getSmvFileDirectory()); String resultFilePath = nuXmvDirectoryUtil.getModelCheckingResultPath(smvFile.getName()); - nuXmvService.modelCheckingCommand(smvFile, property, alg_type, check_type,resultFilePath); + nuXmvService.modelCheckingCommand(smvFile.getPath(), property, alg_type, check_type,resultFilePath); }