private static void registerStructType(DocumentmanagerConfig config, DocumentTypeManager manager, int id,
DocumentmanagerConfig.Datatype.Structtype struct) {
StructDataType type = new StructDataType(id, struct.name());
if (config.enablecompression()) {
CompressionConfig comp = makeCompressionConfig(struct);
type.setCompressionConfig(comp);
}
for (Object j : struct.field()) {
DocumentmanagerConfig.Datatype.Structtype.Field field =
(DocumentmanagerConfig.Datatype.Structtype.Field) j;
DataType fieldType = (field.datatype() == id)
? manager.getDataTypeAndReturnTemporary(field.datatype(), field.detailedtype())
: manager.getDataType(field.datatype(), field.detailedtype());
if (field.id().size() == 1) {
type.addField(new Field(field.name(), field.id().get(0).id(), fieldType, true));
} else {
type.addField(new Field(field.name(), fieldType, true));
}
}
manager.register(type);
}