mapstruct / mapstruct/mapstruct-idea

Array and Map paramter ignored as source-parameter if used as only source

Aperta
#173 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug
Lingua principale
Java
Stelle
168
Fork
41
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I found while investigation #168, that currently the plugin ignores source parameters of type array and Map, if used as the only source parameter.
Here a small example Mapper:

import org.mapstruct.Mapper;

import java.util.Map;

@Mapper
public interface MultiSourceMapper {

    class ArrayTarget {
        private int[] myArray;

        public int[] getMyArray() {
            return myArray;
        }

        public void setMyArray(int[] myArray) {
            this.myArray = myArray;
        }
    }

    ArrayTarget mapToArrayTarget(int[] myArray);

    class MapTarget {
        private Map<Integer, Integer> myMap;

        public Map<Integer, Integer> getMyMap() {
            return myMap;
        }

        public void setMyMap(Map<Integer, Integer> myMap) {
            this.myMap = myMap;
        }
    }

    MapTarget mapToMapTarget(Map<Integer, Integer> myMap);
}

This generates code where all targets are mapped based on their names. The plugin currently ignores the source parameters and give a unmapped target property warning.
grafik
Also the completion doesn't show them as source parameters.

One thing to notice:
For Iterable this behavior is correct as mapstruct itself doesn't support mapping from Iterable to Object.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Riproduci il problema con l'esempio Java MultiSourceMapper del report, verificando sia i parametri sorgente di tipo array sia quelli di tipo Map e confrontando il comportamento Iterable indicato. Traccia la gestione dei parametri sorgente e il comportamento di completion del plugin; il fix è completato quando i parametri array e Map vengono riconosciuti come l'unica sorgente, gli avvisi sui target mappati non compaiono più e la completion li elenca.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java
Ambito
tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.