/*
* Copyright (C) 2010 Medo <smaxein@googlemail.com>
*
* This file is part of GmkSplitter.
* GmkSplitter is free software and comes with ABSOLUTELY NO WARRANTY.
* See LICENSE for details.
*/
package com.ganggarrison.gmdec.xml;
import org.lateralgm.resources.Font;
import org.lateralgm.resources.Font.PFont;
import com.ganggarrison.easyxml.XmlReader;
import com.ganggarrison.easyxml.XmlWriter;
import com.ganggarrison.gmdec.DeferredReferenceCreatorNotifier;
import com.ganggarrison.gmdec.GmkSplitter;
public class FontXmlFormat extends XmlFormat<Font> {
@Override
public void write(Font font, XmlWriter writer) {
writer.startElement("font");
{
writeIdAttribute(font, writer);
writer.putElement("fontName", font.get(PFont.FONT_NAME));
writer.putElement("bold", font.get(PFont.BOLD));
writer.putElement("italic", font.get(PFont.ITALIC));
writer.putElement("rangeMin", font.get(PFont.RANGE_MIN));
writer.putElement("rangeMax", font.get(PFont.RANGE_MAX));
writer.putElement("size", font.get(PFont.SIZE));
if (GmkSplitter.targetVersion >= 810) {
writer.putElement("charset", font.get(PFont.CHARSET));
writer.putElement("antialias", font.get(PFont.ANTIALIAS));
}
}
writer.endElement();
}
@Override
public Font read(XmlReader reader, DeferredReferenceCreatorNotifier notifier) {
Font font = new Font();
reader.enterElement("font");
{
readIdAttribute(font, reader);
font.put(PFont.FONT_NAME, reader.getStringElement("fontName"));
font.put(PFont.BOLD, reader.getBoolElement("bold"));
font.put(PFont.ITALIC, reader.getBoolElement("italic"));
font.put(PFont.RANGE_MIN, reader.getIntElement("rangeMin"));
font.put(PFont.RANGE_MAX, reader.getIntElement("rangeMax"));
font.put(PFont.SIZE, reader.getIntElement("size"));
if (reader.hasNextElement()) {
font.put(PFont.CHARSET, reader.getIntElement("charset"));
font.put(PFont.ANTIALIAS, reader.getIntElement("antialias"));
if (GmkSplitter.targetVersion < 810) {
GmkSplitter.issueVersionWarning("Font/Charset and Antialias");
}
}
}
reader.leaveElement();
return font;
}
}