mapstruct / mapstruct/mapstruct-idea

Unexpected warning: ''.'' should not be used as a source

Ouverte
#257 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Java
Étoiles
168
Forks
41
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

I often have a use-case when "." is a valid and correct source of my mapping. It is officially supported mapping source, so why the plugin reports it as "should not be used"? Is there any particular reason or maybe it is just a historical burden from the times when MapStruct actually didn't support "." as a source?

Example:

record Failure(String code, String detail) {}

class Foo {
  Failure failure;
}

class FooDto {
  String failureCode;
  String failureDetail;
}

public abstract class FooMapper {

  @Mapping(target = "failure", source = ".")
  public abstract Foo fromDto(FooDto fooDto);

  protected Failure mapFailure(FooDto fooDto) {
    return new Failure(fooDto.getFailureCode(), fooDto.getFailureDetail());
  }

}

Of course, in this particular case we can just use:

@Mapping(target = "failure.code", source = "failureCode")
@Mapping(target = "failure.detail", source = "failureDetail")

But there are more complex cases when the target object should be created manually, by a custom code, and the only possible source is the whole source object.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par reproduire l’avertissement avec l’exemple FooMapper et examinez comment le MapStruct IntelliJ plugin gère les valeurs de @Mapping dont le source est ".". Comparez ce comportement avec la prise en charge documentée par MapStruct de cette forme de source ; le travail est terminé lorsque le mapping valide ne génère plus d’avertissement incorrect ou que la raison de l’avertissement est clairement établie.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
tooling
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.