Skip to content

Skip "java.lang.Object" as intermediate result in 2 step mappings #1698

@sjaakd

Description

@sjaakd

It seems that MapStruct tries to map on inheritance (Object).

Below is example of an error trace when there are a lot of suposed qualifying methods:

ERROR] /C:/sjaak/git/bhr/bhrgt_v1_0/transform/src/main/java/nl/bro/transform/bhrgt/BhrGTCommonJaxbToDtoMapper.java:[256,30] Ambiguous mapping methods found for mapping collection element to java.lang.Object: nl.broservices.xsd.brocommon.v_3_0.OrganizationType map(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DisciplineType toDisciplineType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.HorizontalPositioningMethodType toHorizontalPositioningMethodType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.LocalVerticalReferencePointType toLocalVerticalReferencePointType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.PeatTypeType toPeatTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.RockTypeType toRockTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.StopCriterionType toStopCriterionType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SurveyPurposeType toSurveyPurposeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SurveyProcedureType toSurveyProcedure(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.VerticalPositioningMethodType toVerticalPositioningMethodType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DeliveryContextType toDeliveryContextType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.VerticalDatumType toVerticalDatumStatusType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.TemporaryChangeType toTemporaryChangeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.FluidMudLayerPositioningMethodType toFluidMudLayerPositioningMethodType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.PositionOnGroundBodyType toPositionOnGroundBodyType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.ColourType toColourType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SoilUseType toSoilUseType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.BoringProcedureType toBoringProcedureType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.PreparationType toPreparationType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.FlushingAdditiveType toFlushingAdditiveType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SamplingProcedureType toSamplingProcedureType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.ExcavatedMaterialType toExcavatedMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.BoringTechniqueType toBoringTechniqueType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.PreTreatmentType toPreTreatmentType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SamplingMethodType toSamplingMethodType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SamplingQualityType toSamplingQualityType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SamplerTypeType toSamplerTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.CasingMaterialType toCasingMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.BackfillMaterialType toBackfillMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.CementTypeType toCementTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DescriptionProcedureType toDescriptionProcedureType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DescriptionQualityType toDescriptionQuality(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DescriptionLocationType toDescriptionLocationType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DescribedMaterialType toDescribedMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SampleMoistnessType toSampleMoistnessType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.BoundaryPositioningMethodType toBoundaryPositioningMethodType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.ActivityTypeType toActivityTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SpecialMaterialType toSpecialMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.BeddingType toBeddingType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.GeotechnicalSoilNameType toGeotechnicalSoilNameType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SoilNameNEN5104Type toSoilNameNEN5104Type(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.GravelContentClassNEN5104Type toGravelContentClassNEN5104Type(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.OrganicMatterContentClassNEN5104Type toOrganicMatterContentClassNEN5104Type(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.InterbeddingType toInterbeddingType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.CarbonateContentClassType toCarbonateContentClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.OrganicMatterContentClassType toOrganicMatterContentClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.MixingTypeType toMixingTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.GravelMedianClassType toGravelMedianClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.FineGravelContentClassType toFineGravelContentClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.ModeratelyCoarseGravelContentClassType toModeratelyCoarseGravelContentClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.VeryCoarseGravelContentClassType toVeryCoarseGravelContentClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SandMedianClassType toSandMedianClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SandDeviationType toSandDeviationNEN5104Type(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.OrganicSoilTextureType toOrganicSoilTextureType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.FineSoilConsistencyType toFineSoilConsistencyType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.OrganicSoilConsistencyType toOrganicSoilConsistencyType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.OrganicSoilTensileStrengthType toOrganicSoilTensileStrengthType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.GeotechnicalDepositionalCharacteristicType toGeotechnicalDepositionalCharacteristicType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.VoidDistributionType toVoidDistributionType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.StabilityType toStabilityType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.StrengthClassType toStrengthClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DiscontinuityTypeType toDiscontinuityTypeType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.ApertureClassType toApertureClassType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.InfillMaterialType toInfillMaterialType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DiscolourationType toDiscolourationType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DisintegrationType toDisintegrationType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DecompositionType toDecompositionType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SizeFractionType toSizeFractionType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.AngularityType toAngularityType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.SphericityType toSphericityType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.RoughnessType toRoughnessType(java.lang.String value), nl.broservices.xsd.bhrgtcommon.v_1_0.DepositionalAgeType toDepositionalAgeType(java.lang.String value), nl.broservices.xsd.brocommon.v_3_0.IndicationYesNoEnumeration nl.bro.transform.common.BroEnumMapper.toIndicationYesNoEnumeration(java.lang.String in), nl.broservices.xsd.brocommon.v_3_0.IndicationYesNoUnknownEnumeration nl.bro.transform.common.BroEnumMapper.toIndicationYesNoUnknownEnumeration(java.lang.String in), nl.broservices.xsd.brocommon.v_3_0.QualityRegimeEnumeration nl.bro.transform.common.BroEnumMapper.toQualityRegimeEnumeration(java.lang.String in), nl.broservices.xsd.brocommon.v_3_0.IntakeResponseTypeEnumeration nl.bro.transform.common.BroEnumMapper.toIntakeResponseTypeEnumeration(java.lang.String in), nl.broservices.xsd.brocommon.v_3_0.DispatchResponseTypeEnumeration nl.bro.transform.common.BroEnumMapper.toDispatchResponseTypeEnumeration(java.lang.String in), nl.broservices.xsd.brocommon.v_3_0.RegistrationStatusType nl.bro.transform.common.BroCodeWithAuthorityTypeMapper.toRegistrationStatusType(java.lang.String value), nl.broservices.xsd.brocommon.v_3_0.CoordinateTransformationType nl.bro.transform.common.BroCodeWithAuthorityTypeMapper.toCoordinateTransformationType(java.lang.String value).
Its hard to find the true cause, which is probably that MapStruct cannot find a matching method. I'm wondering whether we should qualify methods based on Object at all (or bail out earlier in the matching process).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions