package org.openntf.domino.nsfdata.structs.cd; import org.openntf.domino.nsfdata.structs.FONTID; import org.openntf.domino.nsfdata.structs.SIG; import org.openntf.domino.nsfdata.structs.WSIG; /** * This structure defines the start of a run of text in a rich-text field. (editods.h) * */ public class CDTEXT extends CDRecord { public final WSIG Header = inner(new WSIG()); public final FONTID FontID = inner(new FONTID()); static { addVariableString("Text", "getTextLength"); } @Override public SIG getHeader() { return Header; } public String getText() { return (String) getVariableElement("Text"); } public void setText(final String text) { int resultSize = setVariableElement("Text", text); Header.Length.set(Header.size() + ((int) (resultSize + getStructSize()))); } public int getTextLength() { return (int) (Header.getRecordLength() - Header.size() - FontID.size()); } @Override public int getExtraLength() { // Text is always an even number of bytes in LMBCS, even when Length doesn't indicate this return getTextLength() % 2; } @Override public String toString() { return "[" + getClass().getSimpleName() + ", Font ID: " + FontID + ", Text: " + getText() + "]"; } }