final RGBA startColor = RGBAParser.parseIf(parser, fillStyleTypeValue == 0x00, fieldName + "::StartColor");
final RGBA endColor = RGBAParser.parseIf(parser, fillStyleTypeValue == 0x00, fieldName + "::EndColor");
final Matrix startGradientMatrix = MatrixParser.parseIf(parser, fillStyleTypeValue == 0x10 || fillStyleTypeValue == 0x12, fieldName + "::StartGradientMatrix");
final Matrix endGradientMatrix = MatrixParser.parseIf(parser, fillStyleTypeValue == 0x10 || fillStyleTypeValue == 0x12, fieldName + "::EndGradientMatrix");
final MorphGradient gradient = MorphGradientParser.parseIf(parser, fillStyleTypeValue == 0x10 || fillStyleTypeValue == 0x12, fieldName + "::Gradient");
final UINT16 bitmapId = parseUINT16If(parser, 0x00006, fillStyleTypeValue >= 0x40 && fillStyleTypeValue <= 0x43, fieldName + "::BitmapId");
final Matrix startBitmapMatrix = MatrixParser.parseIf(parser, fillStyleTypeValue >= 0x40 && fillStyleTypeValue <= 0x43, fieldName + "::StartBitmapMatrix");
final Matrix endBitmapMatrix = MatrixParser.parseIf(parser, fillStyleTypeValue >= 0x40 && fillStyleTypeValue <= 0x43, fieldName + "::EndBitmapMatrix");
return new MorphFillStyle(fillStyleType, startColor, endColor, startGradientMatrix, endGradientMatrix, gradient, bitmapId, startBitmapMatrix, endBitmapMatrix);
}