Gateway abstraction layer coded in Java