mirror of
https://github.com/smyalygames/checklist-tester.git
synced 2025-05-18 14:34:12 +02:00
feat(connector): add VDM data type for Aircraft
This commit is contained in:
parent
c6a37b8ac6
commit
08da2d4506
@ -0,0 +1,69 @@
|
|||||||
|
package io.anthonyberg.connector.shared.vdmj.type
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Aircraft record type in the VDM-SL model
|
||||||
|
*/
|
||||||
|
data class Aircraft(
|
||||||
|
val items: Map<String, String>, // TODO value should be ItemObject type
|
||||||
|
val procedure: MutableList<String> // TODO change String to a ProcedureItem type
|
||||||
|
) {
|
||||||
|
/**
|
||||||
|
* Converts variables in object to a String that can be passed into VDM
|
||||||
|
*
|
||||||
|
* @return VDM record String
|
||||||
|
*/
|
||||||
|
fun toVDMString(): String {
|
||||||
|
var output = "mk_Aircraft("
|
||||||
|
output += itemsToVDMString()
|
||||||
|
output += ","
|
||||||
|
output += procedureToVDMString()
|
||||||
|
output += ")"
|
||||||
|
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a String VDM map for items
|
||||||
|
*
|
||||||
|
* @return String VDM representation of a map
|
||||||
|
*/
|
||||||
|
private fun itemsToVDMString(): String {
|
||||||
|
var output = "{"
|
||||||
|
|
||||||
|
for (dref: String in items.keys) {
|
||||||
|
val value = items.getValue(dref)
|
||||||
|
|
||||||
|
// TODO make sure to run toString on value once items Map changes the value type
|
||||||
|
output += "\"$dref\" |-> $value,"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Removes the last comma in the VDM map as it will error otherwise
|
||||||
|
output.dropLast(1)
|
||||||
|
|
||||||
|
output += "}"
|
||||||
|
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a String VDM sequence for the procedure
|
||||||
|
*
|
||||||
|
* @return String VDM representation of a sequence
|
||||||
|
*/
|
||||||
|
private fun procedureToVDMString(): String {
|
||||||
|
var output = "["
|
||||||
|
|
||||||
|
// TODO change item type to Procedure type
|
||||||
|
for (item: String in procedure) {
|
||||||
|
output += item
|
||||||
|
output += ","
|
||||||
|
}
|
||||||
|
|
||||||
|
// Removes the last comma in the VDM sequence as it will error otherwise
|
||||||
|
output.dropLast(1)
|
||||||
|
|
||||||
|
output += "]"
|
||||||
|
|
||||||
|
return output
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user