Question

I want to add some custom code to my greenDAO entities. I saw there is something like protected regions. But I don't like the idea to check in the generated classes to my git repository. I'd like to use inheritance for this.

i.e. I have an entity User. So I want greenDAO to generate a class called UserBase. This I want to extend by User and implement a method like this:

public String getFullName() {
    return this.first + " " + this.last;
}

Where first and last are managed properties.

But I have no idea how to tell greenDAO to use the class User instead of the generated entity UserBase. Is there any way to do this?

Was it helpful?

Solution

I found a way how to solve this:

you can enter a parent for each entity:

Entity user = schema.addEntity("User");
...
user.setSuperclass("UserBase");

So you can implement the UserBase as an abstract class.

public abstract class UserBase {

  public String getFullName() {
    return getFirst() + " " + getLast();
  }

  public abstract int getFirst();
  public abstract int getLast();
}

The disadvantage here is, that you have to declare the generated getters as abstract methods to access them.

OTHER TIPS

The common approach is to use "keep sections" in the generated entities. Keep sections allow to add members and methods directly in the generated entity. Check here for details: http://greendao-orm.com/documentation/modelling-entities/

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top