|  | @ -60,11 +60,7 @@ namespace storm { | 
		
	
		
			
				|  |  |                 for (auto const& subcomp : composition.getSubcompositions()) { |  |  |                 for (auto const& subcomp : composition.getSubcompositions()) { | 
		
	
		
			
				|  |  |                     modernjson::json elemDecl; |  |  |                     modernjson::json elemDecl; | 
		
	
		
			
				|  |  |                     if (subcomp->isAutomaton()) { |  |  |                     if (subcomp->isAutomaton()) { | 
		
	
		
			
				|  |  |                         modernjson::json autDecl; |  |  |  | 
		
	
		
			
				|  |  |                         autDecl["automaton"] = std::static_pointer_cast<AutomatonComposition>(subcomp)->getAutomatonName(); |  |  |  | 
		
	
		
			
				|  |  |                         std::vector<modernjson::json> elements; |  |  |  | 
		
	
		
			
				|  |  |                         elements.push_back(autDecl); |  |  |  | 
		
	
		
			
				|  |  |                         elemDecl["elements"] = elements; |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                         elemDecl["automaton"] = std::static_pointer_cast<AutomatonComposition>(subcomp)->getAutomatonName(); | 
		
	
		
			
				|  |  |                     } else { |  |  |                     } else { | 
		
	
		
			
				|  |  |                         STORM_LOG_THROW(allowRecursion, storm::exceptions::InvalidJaniException, "Nesting composition " << *subcomp << " is not supported by JANI."); |  |  |                         STORM_LOG_THROW(allowRecursion, storm::exceptions::InvalidJaniException, "Nesting composition " << *subcomp << " is not supported by JANI."); | 
		
	
		
			
				|  |  |                         elemDecl = boost::any_cast<modernjson::json>(subcomp->accept(*this, boost::none)); |  |  |                         elemDecl = boost::any_cast<modernjson::json>(subcomp->accept(*this, boost::none)); | 
		
	
	
		
			
				|  | @ -75,7 +71,14 @@ namespace storm { | 
		
	
		
			
				|  |  |                 std::vector<modernjson::json> synElems; |  |  |                 std::vector<modernjson::json> synElems; | 
		
	
		
			
				|  |  |                 for (auto const& syncs : composition.getSynchronizationVectors()) { |  |  |                 for (auto const& syncs : composition.getSynchronizationVectors()) { | 
		
	
		
			
				|  |  |                     modernjson::json syncDecl; |  |  |                     modernjson::json syncDecl; | 
		
	
		
			
				|  |  |                     syncDecl["synchronise"] = syncs.getInput(); |  |  |  | 
		
	
		
			
				|  |  |  |  |  |                     syncDecl["synchronise"] = std::vector<std::string>(); | 
		
	
		
			
				|  |  |  |  |  |                     for (auto const& syncIn : syncs.getInput()) { | 
		
	
		
			
				|  |  |  |  |  |                         if (syncIn == SynchronizationVector::NO_ACTION_INPUT) { | 
		
	
		
			
				|  |  |  |  |  |                             syncDecl["synchronise"].push_back(nullptr); | 
		
	
		
			
				|  |  |  |  |  |                         } else { | 
		
	
		
			
				|  |  |  |  |  |                             syncDecl["synchronise"].push_back(syncIn); | 
		
	
		
			
				|  |  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |  |                     } | 
		
	
		
			
				|  |  |                     syncDecl["result"] = syncs.getOutput(); |  |  |                     syncDecl["result"] = syncs.getOutput(); | 
		
	
		
			
				|  |  |                     synElems.push_back(syncDecl); |  |  |                     synElems.push_back(syncDecl); | 
		
	
		
			
				|  |  |                 } |  |  |                 } | 
		
	
	
		
			
				|  | @ -691,10 +694,14 @@ namespace storm { | 
		
	
		
			
				|  |  |             jsonStruct["restrict-initial"]["exp"] = buildExpression(janiModel.getInitialStatesRestriction()); |  |  |             jsonStruct["restrict-initial"]["exp"] = buildExpression(janiModel.getInitialStatesRestriction()); | 
		
	
		
			
				|  |  |             jsonStruct["automata"] = buildAutomataArray(janiModel.getAutomata(), janiModel.getActionIndexToNameMap()); |  |  |             jsonStruct["automata"] = buildAutomataArray(janiModel.getAutomata(), janiModel.getActionIndexToNameMap()); | 
		
	
		
			
				|  |  |             jsonStruct["system"] = CompositionJsonExporter::translate(janiModel.getSystemComposition()); |  |  |             jsonStruct["system"] = CompositionJsonExporter::translate(janiModel.getSystemComposition()); | 
		
	
		
			
				|  |  |  |  |  |             std::vector<std::string> standardFeatureVector = {"derived-operators"}; | 
		
	
		
			
				|  |  |  |  |  |             jsonStruct["features"] = standardFeatureVector; | 
		
	
		
			
				|  |  |              |  |  |              | 
		
	
		
			
				|  |  |         } |  |  |         } | 
		
	
		
			
				|  |  |          |  |  |          | 
		
	
		
			
				|  |  |          |  |  |          | 
		
	
		
			
				|  |  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |  |          | 
		
	
		
			
				|  |  |         std::string janiFilterTypeString(storm::modelchecker::FilterType const& ft) { |  |  |         std::string janiFilterTypeString(storm::modelchecker::FilterType const& ft) { | 
		
	
		
			
				|  |  |             switch(ft) { |  |  |             switch(ft) { | 
		
	
		
			
				|  |  |                 case storm::modelchecker::FilterType::MIN: |  |  |                 case storm::modelchecker::FilterType::MIN: | 
		
	
	
		
			
				|  | 
 |