package com.github.macrodata.skyprint.section;

import lombok.Setter;
import lombok.ToString;

import java.util.List;

import static com.github.macrodata.skyprint.section.SectionHelper.*;

@ToString
public class RootSection extends Section {

    @Setter
    private MetadataSection metadata;

    @Setter
    private String name;

    @Setter
    private List<ResourceSection> resources;

    @Setter
    private List<GroupSection> groups;

    public MetadataSection getMetadata() {
        if (metadata == null)
            lazy(this::setMetadata, get(this, MetadataSection.class));
        return metadata;
    }

    public String getName() {
        if (name == null)
            lazy(this::setName, get(this, OverviewSection.class).getName());
        return name;
    }

    @Override
    public String getDescription() {
        if (super.getDescription() == null)
            lazy(this::setDescription, get(this, OverviewSection.class).getDescription());
        return super.getDescription();
    }

    public List<ResourceSection> getResources() {
        if (resources == null)
            lazy(this::setResources, list(this, ResourceSection.class));
        return resources;
    }

    public List<GroupSection> getGroups() {
        if (groups == null)
            lazy(this::setGroups, list(this, GroupSection.class));
        return groups;
    }

}
@@ -103,18 +103,120 @@
 java
-.util.List
+x.xml.transform.stream.StreamSource;%0Aimport java.util.List;%0Aimport java.util.Map;%0Aimport java.util.stream.Stream
 ;%0A%0Ai
@@ -363,30 +363,34 @@
 rivate M
-etadataSection
+ap%3CString, String%3E
  metadat
@@ -553,30 +553,34 @@
 public M
-etadataSection
+ap%3CString, String%3E
  getMeta

Change metadata type to map