From 049256ab3001e4cd78d484211b9b53419c64256f Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Fri, 10 Aug 2018 21:28:26 +0200 Subject: Application puts hyperlinks of the generated files to the console --- .../execution/GenerationTaskExecutor.xtend | 54 ++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) (limited to 'Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend') diff --git a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend index 9a8ac8a3..975da665 100644 --- a/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend +++ b/Application/hu.bme.mit.inf.dslreasoner.application/src/hu/bme/mit/inf/dslreasoner/application/execution/GenerationTaskExecutor.xtend @@ -26,6 +26,8 @@ import java.util.Scanner import org.eclipse.core.runtime.IProgressMonitor import org.eclipse.emf.common.util.URI import hu.bme.mit.inf.dslreasoner.workspace.URIBasedWorkspace +import java.util.LinkedList +import java.io.File class GenerationTaskExecutor { val metamodelLoader = new MetamodelLoader @@ -212,25 +214,62 @@ class GenerationTaskExecutor { outputWorkspace } + val emfRepresentations = new LinkedList + val gmlRepresentations = new LinkedList + val dotRepresentations = new LinkedList + for(interpretationIndex : 0..0» «run»/«runs»«ENDIF»: Visualising solution «interpretationIndex+1»/«interpretations.size»''') val interpretation = interpretations.get(interpretationIndex) val model = logic2Ecore.transformInterpretation(interpretation,modelGeneration.trace) - outputWorkspaceForRun.writeModel(model,'''model«IF runs>1»_«run»«ENDIF»_«interpretationIndex+1».xmi''') + val emfFileName = '''«IF runs>1»«run»_«ENDIF»«interpretationIndex+1».xmi''' + outputWorkspaceForRun.writeModel(model,emfFileName) + emfRepresentations += outputWorkspaceForRun.getFile(emfFileName) val representation = solution.representation.get(interpretationIndex) if(representation instanceof PartialInterpretation) { val vis1 = new PartialInterpretation2Gml val gml = vis1.transform(representation) - outputWorkspaceForRun.writeText('''model«IF runs>1»_«run»«ENDIF»_«interpretationIndex+1».gml''',gml) + val glmFilename = '''«IF runs>1»«run»_«ENDIF»«interpretationIndex+1».gml''' + outputWorkspaceForRun.writeText(glmFilename,gml) + gmlRepresentations += outputWorkspaceForRun.getFile(glmFilename) if(representation.newElements.size + representation.problem.elements.size < 150) { val vis2 = new GraphvizVisualiser val dot = vis2.visualiseConcretization(representation) - dot.writeToFile(outputWorkspaceForRun,'''model«IF runs>1»_«run»«ENDIF»_«interpretationIndex+1».png''') + val dotFileName = '''«IF runs>1»«run»_«ENDIF»«interpretationIndex+1».png''' + dot.writeToFile(outputWorkspaceForRun,dotFileName) + dotRepresentations += outputWorkspaceForRun.getFile(dotFileName) + } + else { + dotRepresentations += null } + } else { + gmlRepresentations += null + dotRepresentations += null } monitor.worked(100) } + console.writeMessage( + '''Models: «FOR f : emfRepresentations»#«ENDFOR»''', + "#", + emfRepresentations.map[ + new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) + ] + ) + console.writeMessage( + '''Visualisations: «FOR f : gmlRepresentations»#«ENDFOR»''', + "#", + gmlRepresentations.map[ + new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) + ] + ) + console.writeMessage( + '''Visualisations: «FOR f : dotRepresentations»#«ENDFOR»''', + "#", + dotRepresentations.map[ + new ScriptConsoleDecorator('''«it.fileRepresentationInConsole»''',it) + ] + ) } else { monitor.worked(solverConfig.solutionScope.numberOfRequiredSolution*100) } @@ -261,6 +300,15 @@ class GenerationTaskExecutor { } } + private def fileRepresentationInConsole(File file) { +// if(file.name.contains('.')) { +// return file.name.substring(0,file.name.lastIndexOf('.')) +// } else { +// file.name +// } + file.name + } + private def dispatch soutionDescription(InconsistencyResult s) { if(s.representation.size == 0) { '''Problem is inconsistent, no model is created!''' -- cgit v1.2.3-70-g09d2