mapstruct / mapstruct/mapstruct-idea
Unexpected warning: ''.'' should not be used as a source
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 168
- Forks
- 41
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
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:
```java
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:
```java
@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.
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza reproduciendo la advertencia con el ejemplo de FooMapper e inspecciona cómo el MapStruct IntelliJ plugin gestiona los valores de @Mapping cuyo source es ".". Compara ese comportamiento con el soporte documentado de MapStruct para esta forma de source; se considera terminado cuando la asignación válida ya no genere una advertencia incorrecta o se haya establecido claramente el motivo de la advertencia.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- tooling
- Tipo de issue
- Error
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100