
nl.pvanassen.ns.model.prijzen.ProductenHandle Maven / Gradle / Ivy
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