havardh / javaflow

Java model to flowtype converter
22 stars 5 forks source link

Include fields that only have getters #69

Open pascalgn opened 5 years ago

pascalgn commented 5 years ago

Currently, the main focus for generated fields in types is the Java field. But consider the following Java class:

public class User {
    private String firstName;
    private String lastName;

    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public String getName() {
        return firstName + " " + lastName;
    }
}

then usually (at least when using Jackson API), instances of that class will result in JSON like this:

{
  "firstName": "John",
  "lastName": "Smith",
  "name": "John Smith"
}

However, as there is no field name in class User, the resulting type will not include the name field:

export User = {
  firstName: string,
  lastName: string
};
havardh commented 5 years ago

For simplicity (and because of the restraint on our Dto models) I implemented this using the fields, as the naming of the flowtype fields would be given without translation. But as you point out we should match Jackson in functionality and use the getters as a basis instead. Lets add a flag for selecting which you would want to use.