Rev 2045 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
* Copyright (C) 2009.
*
* 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.imgfmt.app.mdr;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import uk.me.parabola.imgfmt.app.ImgFileWriter;
/**
* The countries that occur in each map.
*
* @author Steve Ratcliffe
*/
public class Mdr14
extends MdrSection
implements HasHeaderFlags
{
private final List<Mdr14Record
> countries =
new ArrayList<Mdr14Record
>();
public Mdr14
(MdrConfig config
) {
setConfig
(config
);
}
public void writeSectData
(ImgFileWriter writer
) {
Collections.
sort(countries
);
for (Mdr14Record country : countries
) {
putMapIndex
(writer, country.
getMapIndex());
writer.
putChar((char) country.
getCountryIndex());
putStringOffset
(writer, country.
getStrOff());
}
}
public void addCountry
(Mdr14Record country
) {
countries.
add(country
);
}
public int getItemSize
() {
PointerSizes sizes = getSizes
();
return sizes.
getMapSize() +
2 + sizes.
getStrOffSize();
}
/**
* The number of records in this section.
* @return The number of items in the section.
*/
protected int numberOfItems
() {
return countries.
size();
}
public int getExtraValue
() {
return 0x00
;
}
public List<Mdr14Record
> getCountries
() {
return countries
;
}
}