Interface SecuritySchemeMapper
- All Known Implementing Classes:
SecuritySchemeMapperImpl
SecurityScheme and SecurityScheme.
This mapper handles the polymorphic sealed interface SecurityScheme by using a custom default method with switch expression. MapStruct doesn't natively support sealed interfaces with protobuf's oneof pattern, so we manually dispatch to the appropriate concrete mapper.
Manual Implementation Required: Must use manual instanceof dispatch to handle sealed interface (5 permitted subtypes) to protobuf oneof pattern, as MapStruct's @SubclassMapping cannot map different source types to different fields of the same target type.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiondefault SecuritySchemefromProto(SecurityScheme proto) Converts a protobuf SecurityScheme to domain SecurityScheme.default SecuritySchemetoProto(SecurityScheme domain) Converts a domain SecurityScheme to protobuf SecurityScheme.
-
Field Details
-
INSTANCE
-
-
Method Details
-
toProto
Converts a domain SecurityScheme to protobuf SecurityScheme.Uses instanceof checks to handle sealed interface polymorphism, dispatching to the appropriate concrete mapper based on the runtime type. This is necessary because MapStruct cannot automatically handle sealed interfaces with protobuf oneof fields.
- Parameters:
domain- the domain security scheme (sealed interface)- Returns:
- the protobuf SecurityScheme with the appropriate oneof field set
-
fromProto
Converts a protobuf SecurityScheme to domain SecurityScheme.Uses oneof checks to determine which security scheme type is set, dispatching to the appropriate concrete mapper. This reverses the toProto conversion by checking which oneof field is populated.
- Parameters:
proto- the protobuf SecurityScheme with a oneof field set- Returns:
- the domain security scheme (sealed interface implementation)
-