/* * Copyright (C) 2011. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 3 or * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. */ package uk.me.parabola.mkgmap.typ; import uk.me.parabola.imgfmt.app.typ.TypData; import uk.me.parabola.mkgmap.scan.SyntaxException; import uk.me.parabola.mkgmap.scan.TokenScanner; import uk.me.parabola.mkgmap.srt.SrtTextReader; /** * Process lines from the id section of a typ.txt file. * * @author Steve Ratcliffe */ class IdSection implements ProcessSection { private final TypData data; public IdSection(TypData data) { this.data = data; } public void processLine(TokenScanner scanner, String name, String value) { int ival; try { ival = Integer.decode(value); } catch (NumberFormatException e) { throw new SyntaxException(scanner, "Bad integer " + value); } if (name.equalsIgnoreCase("FID")) { data.setFamilyId(ival); } else if (name.equalsIgnoreCase("ProductCode")) { data.setProductId(ival); } else if (name.equalsIgnoreCase("CodePage")) { data.setSort(SrtTextReader.sortForCodepage(ival)); } else { throw new SyntaxException(scanner, "Unrecognised keyword in id section: " + name); } } public void finish(TokenScanner scanner) { } }