isaacmaffeis / asmetal2java

Asmetal2java is a tool that automatically generates a Java file from an Abstract State Machine (ASM) specification written in Asmeta.
https://asmeta.github.io/index.html
0 stars 0 forks source link

Formatting issue in printControlled #12

Closed isaacmaffeis closed 1 month ago

isaacmaffeis commented 1 month ago

name: 🐞 Bug about: File a bug/issue title: '[BUG] Formatting issue' labels: Bug, Needs Triage assignees: ''


Current Behavior:

Formatting issue in automatic generation of printControlled

private void printControlled(coffeeVendingMachineNC esecuzione) {
    ...
    for (int i = 0; i < esecuzione.Product_elemsList.size(); i++) {
        System.out.println(" available =>  (" + esecuzione.Product_elemsList.get(i) + ")
                = " + esecuzione.available.oldValues.get(esecuzione.Product_elemsList.get(i)).value);
    }
}

image

Expected Behavior:

System.out.println(" available =>  (" + esecuzione.Product_elemsList.get(i) +
        ")= " + esecuzione.available.oldValues.get(esecuzione.Product_elemsList.get(i)).value);

Steps To Reproduce:

Run the MainClass : org.asmeta.asm2java.main.MainClass With the following params:

-input
"input\coffeeVendingMachineNC.asm"

Environment:

Anything else:

isaacmaffeis commented 1 month ago

Fixed updating these lines of code inside the printControlled() in the JavaExeGenerator class :

if (fd.domain instanceof EnumTd && fd.codomain instanceof ConcreteDomain) {
sb.append('''
    for(int i=0; i < esecuzione.«fd.domain.name»_elemsList.size(); i++)
            {
                System.out.println(" «fd.name» =>  (" + esecuzione.«fd.domain.name»_elemsList.get(i) +
                ") = " + esecuzione.«fd.name».oldValues.get(esecuzione.«fd.domain.name»_elemsList.get(i)).value );
            }
''')
}

if (fd.domain instanceof EnumTd && fd.codomain instanceof EnumTd) {
sb.append('''
    for(int i=0; i < esecuzione.«fd.domain.name»_elemsList.size(); i++)
            {
                System.out.println("«fd.name» =>  (" + esecuzione.«fd.domain.name»_elemsList.get(i) +
                ") = "+ esecuzione.«fd.name».oldValues.get(esecuzione.«fd.domain.name»_elemsList.get(i)));
            }
''')
}