//
// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.8-b130911.1802
// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
// Any modifications to this file will be lost upon recompilation of the source schema.
// Generated on: 2019.09.04 at 03:57:23 PM CEST
//


package be.fgov.ehealth.technicalconnector.tests.server;

import javax.xml.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * <p>
 * Java class for anonymous complex type.
 *
 * <p>
 * The following schema fragment specifies the expected content contained within this class.
 *
 * <pre>
 * &lt;complexType>
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="Inbound">
 *           &lt;complexType>
 *             &lt;complexContent>
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *                 &lt;sequence>
 *                   &lt;element name="Header" maxOccurs="unbounded" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;simpleContent>
 *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
 *                           &lt;attribute name="id" use="required" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                         &lt;/extension>
 *                       &lt;/simpleContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                   &lt;element name="File" maxOccurs="unbounded" minOccurs="0">
 *                     &lt;complexType>
 *                       &lt;simpleContent>
 *                         &lt;extension base="&lt;http://www.w3.org/2001/XMLSchema>string">
 *                           &lt;attribute name="id" type="{http://www.w3.org/2001/XMLSchema}string" />
 *                         &lt;/extension>
 *                       &lt;/simpleContent>
 *                     &lt;/complexType>
 *                   &lt;/element>
 *                 &lt;/sequence>
 *               &lt;/restriction>
 *             &lt;/complexContent>
 *           &lt;/complexType>
 *         &lt;/element>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {"inbound"})
@XmlRootElement(name = "EchoResponse")
public class EchoResponse {

    @XmlElement(name = "Inbound", required = true)
    protected EchoResponse.Inbound inbound;

    public EchoResponse.Inbound getInbound() {
        return inbound;
    }


    public void setInbound(EchoResponse.Inbound value) {
        this.inbound = value;
    }


    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {"header", "file"})
    public static class Inbound {

        @XmlElement(name = "Header")
        protected List<EchoResponse.Inbound.Header> header;

        @XmlElement(name = "File")
        protected List<EchoResponse.Inbound.File> file;

        public List<EchoResponse.Inbound.Header> getHeader() {
            if (header == null) {
                header = new ArrayList<EchoResponse.Inbound.Header>();
            }
            return this.header;
        }

        public List<EchoResponse.Inbound.File> getFile() {
            if (file == null) {
                file = new ArrayList<EchoResponse.Inbound.File>();
            }
            return this.file;
        }

        public Map<String, String> getHeaders() {
            Map<String, String> result = new HashMap<String, String>();
            for (Header h : getHeader()) {
                System.out.println(h.id + ": [" + h.value + "]");
                result.put(h.id, h.value);
            }
            return result;
        }

        public Map<String, String> getFiles() {
            Map<String, String> result = new HashMap<String, String>();
            for (File f : getFile()) {
                result.put(f.id, f.value);
            }
            return result;
        }


        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {"value"})
        public static class File {

            @XmlValue
            protected String value;

            @XmlAttribute(name = "id")
            protected String id;

            public String getValue() {
                return value;
            }

            public void setValue(String value) {
                this.value = value;
            }

            public String getId() {
                return id;
            }

            public void setId(String value) {
                this.id = value;
            }

        }


        @XmlAccessorType(XmlAccessType.FIELD)
        @XmlType(name = "", propOrder = {"value"})
        public static class Header {

            @XmlValue
            protected String value;

            @XmlAttribute(name = "id", required = true)
            protected String id;


            public String getValue() {
                return value;
            }

            public void setValue(String value) {
                this.value = value;
            }

            public String getId() {
                return id;
            }


            public void setId(String value) {
                this.id = value;
            }

        }

    }

}
