lib/java: separate interface Store from abstract class AbstractStore