zkh152 / xdocreport

Automatically exported from code.google.com/p/xdocreport
0 stars 0 forks source link

Openoffice / libreoffice addon preview doesn't work with nested list data #473

Open mattgolem opened 3 years ago

mattgolem commented 3 years ago
public class Project {

    private final String name;

    private List<Developer> developers;

    public Project(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public List<Developer> getDevelopers() {
        return developers;
    }

    public void setDevelopers(List<Developer> developers) {
        this.developers = developers;
    }
}

public class Developer {

    private final String name;
    private final String lastName;
    private final String mail;

    public Developer(String name, String lastName, String mail) {
        this.name = name;
        this.lastName = lastName;
        this.mail = mail;
    }

    public String getName() {
        return name;
    }

    public String getLastName() {
        return lastName;
    }

    public String getMail() {
        return mail;
    }

}

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<fields templateEngineKind="Freemarker" >
    <description><![CDATA[]]></description>
    <field name="project.developers.lastName" list="true" imageName="" syntaxKind="">
        <description><![CDATA[]]></description>
    </field>
    <field name="project.developers.mail" list="true" imageName="" syntaxKind="">
        <description><![CDATA[]]></description>
    </field>
    <field name="project.developers.name" list="true" imageName="" syntaxKind="">
        <description><![CDATA[]]></description>
    </field>
    <field name="project.name" list="false" imageName="" syntaxKind="">
        <description><![CDATA[]]></description>
    </field>
</fields>

on preview I see this:

java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Map
    at fr.opensagres.xdocreport.document.tools.json.FieldsMetadataJSONSerializer.toMap(FieldsMetadataJSONSerializer.java:133)
    at fr.opensagres.xdocreport.document.tools.json.FieldsMetadataJSONSerializer.toMap(FieldsMetadataJSONSerializer.java:91)
    at fr.opensagres.xdocreport.document.tools.json.FieldsMetadataJSONSerializer.save(FieldsMetadataJSONSerializer.java:71)
    at fr.opensagres.xdocreport.document.tools.json.FieldsMetadataJSONSerializer.save(FieldsMetadataJSONSerializer.java:65)
    at fr.opensagres.xdocreport.document.tools.json.JSONDataProviderFactory.generateDefaultData(JSONDataProviderFactory.java:57)
    at fr.opensagres.xdocreport.document.tools.DataProviderFactoryRegistry.generateDefaultData(DataProviderFactoryRegistry.java:93)
    at fr.opensagres.xdocreport.document.tools.Main.process(Main.java:196)
    at fr.opensagres.xdocreport.document.tools.Main.main(Main.java:128)