package org.signalml.util.matfiles.structure.elements; import java.io.DataOutputStream; import java.io.IOException; import java.util.List; import org.signalml.util.matfiles.elements.DataElement; import org.signalml.util.matfiles.types.DataType; /** * This class is responsible for writing the field name length * structure subelement to the MAT file. This element specifies * the maximum length of the field name element. * * @author Piotr Szachewicz */ public class FieldNameLength extends DataElement { /** * The maximum size of the field name element. */ private int maximumSize; public FieldNameLength(List<String> keys) { super(DataType.MI_INT32); maximumSize = 0; for (String key: keys) if (key.length() > maximumSize) maximumSize = key.length(); maximumSize++; //NULL termination } /** * Returns the maximum length of the field name. * @return */ public int getFieldNameMaximumSize() { return maximumSize; } @Override public void write(DataOutputStream dataOutputStream) throws IOException { dataOutputStream.writeShort(4); dataOutputStream.writeShort(dataType.getValue()); dataOutputStream.writeInt(maximumSize); } }