MapStruct Anwendung vom selbst geschriebenen Formater

guguli

Bekanntes Mitglied
Hallo zusammen, ich habe eine date formater geschrieben, diese Klasse bzw. die Methode dieser Klasse möchte ich gerne in Mapstruct anwenden.
Folgendes habe ich bis jetzt:
Code:
@Mapper(uses ={
       XmlErzeugerUtil.class
})
public interface VerarbeitungXmlMapper {

   VerarbeitungXmlMapper INSTANCE = Mappers.getMapper(VerarbeitungXmlMapper.class);

   @Mapping(source = "eingangsstempel", qualifiedByName = XmlErzeugerUtil.getFormattedDateYYYYMMDD000000(eingangsstempel) ,  target = "EDat")
   void adatpiereAnmeldung(Anmeldung anmeldung, @MappingTarget KType type);
}

ich bekomme aber folgende felermeldung:

Code:
Ambiguous mapping methods found for mapping property "java.util.Date eingangsstempel" to java.lang.String: java.lang.String de.finkonsens.fc.verarbeitung.xml.util.XmlErzeugerUtil.getFormattedDateYYYYMMDD(java.util.Date input), java.lang.String de.finkonsens.fc.verarbeitung.xml.util.XmlErzeugerUtil.getFormattedDateYYYYMMDD000000(java.util.Date input), java.lang.String de.finkonsens.fc.verarbeitung.xml.util.XmlErzeugerUtil.getNullOrFormattedDateYYYYMMDD(java.util.Date input).

kann mir einer dabei helfen?
Danke
 
Vermutlich die Doku
Hab ich schon durch gelesen.

Also ich muss einen mapper schreiben:
Das ist ja das Problem 🙁...

Ich habe dieses Codestück:
Code:
// Summen Die Nachkommastellen bei dieser Summe werden abgeschnitten!
       BigDecimal kap = e2010.getSumme();
       if (kap != null) {
           kType.setSt(kap.setScale(0, BigDecimal.ROUND_DOWN));
       }

nun möchte ich einen Mapper schrieben, welchen ich in mein MapStruct Interface benutzen kann und die methode java.math.BigDecimal.setScale(int, int) aufrufen. Das habe ich bis jetzt:
Code:
public class MappingUtil {

       @Qualifier
       @Target(ElementType.METHOD)
       @Retention(RetentionPolicy.SOURCE)
       public @interface BigDecimalMapper {
   }
   
    @BigDecimalMapper
    public java.math.BigDecimal setScale(){
        return null;
    }
}

diesen Mapper dann in meiner MappStruct Interface mittels qualifiedBy benutzen.

Kann mir einer sagen wie ich die Methode java.math.BigDecimal.setScale(int, int) aus meiner MappingUtil Klass aufrufen kann?

Danke
 
Was hat dieses Problem mit dem anderen zu tun?!?

Ansonsten würde ich sagen, dass Deiner Methode ein Parameter fehlt.
Java:
    public BigDecimal truncate(BigDecimal value){
        return value.setScale(0, BigDecimal.ROUND_DOWN);
    }
 

Neue Themen


Zurück
Oben