Implementation of the Abstract Mapper Pattern in java