package com.xenoage.zong.musicxml.types.attributes; import static com.xenoage.zong.musicxml.types.attributes.MxlColor.noColor; import static com.xenoage.zong.musicxml.types.attributes.MxlFont.noFont; import static com.xenoage.zong.musicxml.types.attributes.MxlPosition.noPosition; import lombok.AllArgsConstructor; import lombok.Getter; import com.xenoage.utils.xml.XmlReader; import com.xenoage.utils.xml.XmlWriter; import com.xenoage.zong.musicxml.types.util.MxlPositionContent; /** * MusicXML print-style. * * @author Andreas Wenger */ @AllArgsConstructor @Getter public final class MxlPrintStyle implements MxlPositionContent { public static final MxlPrintStyle noPrintStyle = new MxlPrintStyle(noPosition, noFont, noColor); private final MxlPosition position; private final MxlFont font; private final MxlColor color; public static MxlPrintStyle read(XmlReader reader) { MxlPosition position = MxlPosition.read(reader); MxlFont font = MxlFont.read(reader); MxlColor color = MxlColor.read(reader); if (position != noPosition || font != noFont || color != noColor) return new MxlPrintStyle(position, font, color); else return noPrintStyle; } public void write(XmlWriter writer) { if (this != noPrintStyle) { position.write(writer); font.write(writer); color.write(writer); } } }