Generic Adapter with search and sort functionality
Here are some suggestions take what you like from it:


You can make BaseModel an interface. This gives the added benefit that your models do not need to extend your abstract class.
In your getFilter method in a code review I'd ask you to put curly braces around your first if.

if (origList == null) {
    origList = new ArrayList&lt;&gt;(itemList);
}
You can instantiate your filter once as a member of the class, rather than instantiating a new one every time the function getFilter is called.
Use collections.unmodifiablelist to protect yourself from unwanted mutations of the original list, when creating or assigning a new list. This is just a precautionary suggestion that has performance implications. Your not mutating when you should not be.