package org.openntf.domino.nsfdata.structs.cd;
import java.util.Set;
import org.openntf.domino.nsfdata.NSFCompiledFormula;
import org.openntf.domino.nsfdata.structs.FONTID;
import org.openntf.domino.nsfdata.structs.NFMT;
import org.openntf.domino.nsfdata.structs.SIG;
import org.openntf.domino.nsfdata.structs.TFMT;
import org.openntf.domino.nsfdata.structs.WSIG;
/**
* This item is an obsolete definition of the attributes of a field in a form note. It is included in this reference for compatibility with
* forms created with pre-V1 releases of Notes. (editods.h)
*
* @since prehistory
*
*/
public class CDFIELD_PRE_36 extends CDRecord {
public final WSIG Header = inner(new WSIG());
/**
* Use getFlags() for access
*/
@Deprecated
public final Unsigned16 Flags = new Unsigned16();
// TODO make enum - this is weirder than it seems at first blush
// public final Enum16<FieldType> DataType = new Enum16<FieldType>(FieldType.values());
public final Unsigned16 DataType = new Unsigned16();
/**
* Use getListDelim for access.
*/
@Deprecated
public final Unsigned16 ListDelim = new Unsigned16();
public final NFMT NumberFormat = inner(new NFMT());
public final TFMT TimeFormat = inner(new TFMT());
public final FONTID FontID = inner(new FONTID());
public final Unsigned16 DVLength = new Unsigned16();
public final Unsigned16 ITLength = new Unsigned16();
public final Unsigned16 Unused1 = new Unsigned16();
public final Unsigned16 IVLength = new Unsigned16();
public final Unsigned16 NameLength = new Unsigned16();
public final Unsigned16 DescLength = new Unsigned16();
static {
addVariableData("DV", "DVLength");
addVariableData("IT", "ITLength");
addVariableData("IV", "IVLength");
addVariableAsciiString("Name", "NameLength");
addVariableAsciiString("Desc", "DescLength");
}
@Override
public SIG getHeader() {
return Header;
}
public Set<FieldFlag> getFlags() {
return FieldFlag.valuesOf((short) Flags.get());
}
public Set<ListDelimiter> getListDelim() {
// TODO make this properly distinguish between display and input formats
return ListDelimiter.valuesOf((short) ListDelim.get());
}
public NSFCompiledFormula getDefaultValueFormula() {
int length = DVLength.get();
if (length > 0) {
return new NSFCompiledFormula((byte[]) getVariableElement("DV"));
} else {
return null;
}
}
public NSFCompiledFormula getInputTranslationFormula() {
int length = ITLength.get();
if (length > 0) {
return new NSFCompiledFormula((byte[]) getVariableElement("IT"));
} else {
return null;
}
}
public NSFCompiledFormula getInputValidationFormula() {
int length = IVLength.get();
if (length > 0) {
return new NSFCompiledFormula((byte[]) getVariableElement("IV"));
} else {
return null;
}
}
public String getItemName() {
return (String) getVariableElement("Name");
}
public String getDescription() {
return (String) getVariableElement("Desc");
}
}