eclipse-vertx / eclipse-vertx/vertx-codegen
Abstract DataObject as property type generate an impossible converter
Nessuno ha ancora preso questa issue.
- Lingua principale
- Java
- Stelle
- 111
- Fork
- 88
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
If you make a DataObject of this kind
```java
@DataObject(generateConverter = true)
public class TestObjectWithInterfaceField {
private TestInterface anInterface = new TestInterfaceImpl();
public TestObjectWithInterfaceField() {
}
public TestObjectWithInterfaceField(JsonObject object){
}
public TestInterface getAnInterface() {
return anInterface;
}
public void setAnInterface(TestInterface anInterface) {
this.anInterface = anInterface;
}
}
```
with TestInterface as :
```java
@DataObject
public interface TestInterface {
String getString();
}
```
the generated converted is :
```java
public class TestObjectWithInterfaceFieldConverter {
public static void fromJson(JsonObject json, TestObjectWithInterfaceField obj) {
if (json.getValue("anInterface") instanceof JsonObject) {
obj.setAnInterface(new TestInterface((JsonObject)json.getValue("anInterface")));
}
}
public static void toJson(TestObjectWithInterfaceField obj, JsonObject json) {
}
}
```
Obviously, converter isn't usable, even valid... is it fixable?
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il converter generato per TestObjectWithInterfaceField, TestInterface e TestInterfaceImpl, quindi segui il percorso di generazione del codice che gestisce i tipi di proprietà astratte di DataObject. Il lavoro è completato quando la generazione non emette più una costruzione impossibile di un’interfaccia e il converter risultante ha un comportamento JSON definito per il campo di interfaccia.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- java
- Ambito
- tooling
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100