import java.io.*; /** * Klasse som representerer varer. */ public class Vare { /** Momssatsen */ public static final double MOMS = 0.24; public static final char FELTSKILLE = '|'; private String navn; private double pris; private boolean moms = false; public Vare() {} /** Kontruktør som oppretter en vare med gitt navn og pris uten moms . */ public Vare(String vareNavn, double basisPris) { navn = vareNavn; pris = basisPris; } /** Bestemmer om en vare er momspliktig (true) eller ikke (false ) */ public void settMoms(boolean momspliktig) { moms = momspliktig; } /** Returnerer varenavnet */ public String hentNavn() { return navn; } /** Returnerer utsalgspris inkl. evt. moms */ public double hentUtsalgspris() { if (moms) return pris * (1 + MOMS); else return pris; } /** Skriver data om en vare til en tekstfilstrøm * @param tekstSkriver strømmen vi skriver til */ public void skrivTilFil(PrintWriter tekstSkriver) { tekstSkriver.println(navn + FELTSKILLE + pris + FELTSKILLE + moms); } /** Leser data om en vare fra en tekstfilstrøm * @param tekstLeser strømmen vi leser fra */ public void lesFraFil(BufferedReader tekstLeser) throws IOException { // Leser en post som en hel tekstlinje. String post = tekstLeser.readLine(); // Finn indeksene til feltslutt-tegnene i posten. int feltslutt1 = post.indexOf(FELTSKILLE); int feltslutt2 = post.indexOf(FELTSKILLE, feltslutt1 + 1); // Plukk ut de enkelte feltene navn = post.substring(0, feltslutt1); String felt2 = post.substring(feltslutt1 + 1, feltslutt2); String felt3 = post.substring(feltslutt2 + 1); // Konverter til numeriske datatyper pris = Double.parseDouble(felt2); moms = felt3.equals("true"); } }