package com.xenoage.zong.musicxml.types; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; import com.xenoage.utils.annotations.MaybeNull; import com.xenoage.utils.xml.XmlReader; import com.xenoage.utils.xml.XmlWriter; /** * MusicXML x-position and y-position. * * @author Andreas Wenger */ @AllArgsConstructor @Getter @Setter public final class MxlBezier { @MaybeNull private Float bezierOffset, bezierOffset2, bezierX, bezierY, bezierX2, bezierY2; @MaybeNull public static MxlBezier read(XmlReader reader) { Float bezierOffset = reader.getAttributeFloat("bezier-offset"); Float bezierOffset2 = reader.getAttributeFloat("bezier-offset-2"); Float bezierX = reader.getAttributeFloat("bezier-x"); Float bezierY = reader.getAttributeFloat("bezier-y"); Float bezierX2 = reader.getAttributeFloat("bezier-x2"); Float bezierY2 = reader.getAttributeFloat("bezier-y2"); if (bezierOffset != null || bezierOffset2 != null || bezierX != null || bezierY != null || bezierX2 != null || bezierY2 != null) return new MxlBezier(bezierOffset, bezierOffset2, bezierX, bezierY, bezierX2, bezierY2); else return null; } public void write(XmlWriter writer) { writer.writeAttribute("bezier-offset", bezierOffset); writer.writeAttribute("bezier-offset-2", bezierOffset2); writer.writeAttribute("bezier-x", bezierX); writer.writeAttribute("bezier-y", bezierY); writer.writeAttribute("bezier-x2", bezierX2); writer.writeAttribute("bezier-y2", bezierY2); } }