All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.pvanassen.ns.model.prijzen.ProductenHandle Maven / Gradle / Ivy

There is a newer version: 1.1.1
Show newest version
package nl.pvanassen.ns.model.prijzen;

import nl.pvanassen.ns.handle.Handle;
import nl.pvanassen.ns.xml.Xml;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

/**
 * Handle for parsing 'producten' xml, as defined in documentatie prijzen
 * 
 * @author Paul van Assen
 * 
 */
public class ProductenHandle implements Handle {

    /**
     * {@inheritDoc}
     * 
     * @see nl.pvanassen.ns.handle.Handle#getModel(java.io.InputStream)
     */
    @Override
    public Producten getModel(InputStream stream) {
        List producten = new LinkedList<>();
        Xml xml = Xml.getXml(stream, "Producten");
        int tariefEenheden = Integer.parseInt(xml.child("Tariefeenheden").content());
        for (Xml productXml : xml.children("Product")) {
            String naam = productXml.attr("naam");
            List prijzen = new ArrayList<>(productXml.children("Prijs").size());
            for (Xml prijsXml : productXml.children("Prijs")) {
                String korting = prijsXml.attr("korting");
                int klasse = Integer.parseInt(prijsXml.attr("klasse"));
                int prijs = Integer.parseInt(prijsXml.content().replace(",", ""));
                prijzen.add(new Prijs(korting, klasse, prijs));
            }
            producten.add(new Product(naam, prijzen));
        }
        return new Producten(tariefEenheden, producten);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy