// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/Account.java
// @JsonPropertyOrder({ "accountNumber", "balance", "owner" })
// public class Account implements Serializable {
// 
// 	private static final long serialVersionUID = 3338920622026973343L;
// 	private String accountNumber;
// 	private int balance;
// 	private Customer owner;
// 
// 	public String getAccountNumber() {
// 		return accountNumber;
// 	}
// 
// 	public void setAccountNumber(String accountNumber) {
// 		this.accountNumber = accountNumber;
// 	}
// 
// 	public int getBalance() {
// 		return balance;
// 	}
// 
// 	public void setBalance(int balance) {
// 		this.balance = balance;
// 	}
// 
// 	public Customer getOwner() {
// 		return owner;
// 	}
// 
// 	public void setOwner(Customer owner) {
// 		this.owner = owner;
// 	}
// 
// }
// 
// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/BankService.java
// public interface BankService {
// 
// 	Account transfer(Account fromAccount, Customer actor, Account toAccount, int amount, boolean sendConfirmationSms);
// 
// 	Boolean checkAccount(Account account);
// 
// 	byte[] updatePhoto(String name, byte[] photo);
// 
// 	Account joinAccounts(Account account1, Account account2);
// 
// 	Customer authenticate(String name, String password, String sessionId);
// 
// 	Account getAccount(int id);
// 
// 	boolean isSessionAlive(String sid);
// 
// 	boolean doesCustomerExist(String name);
// 
// 	boolean doesCustomerExist2(String name);
// 
// 	List<Account> getAllAccounts();
// 
// }
// 
// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/Customer.java
// public class Customer implements Serializable {
// 
// 	private static final long serialVersionUID = 5450750236224806988L;
// 	private String name;
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// }


import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.CookieParam;
import javax.ws.rs.FormParam;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import com.github.ggeorgovassilis.springjsonmapper.jaxrs.Headers;
import com.github.ggeorgovassilis.springjsonmapper.services.Account;
import com.github.ggeorgovassilis.springjsonmapper.services.BankService;
import com.github.ggeorgovassilis.springjsonmapper.services.Customer;
import java.util.List;

	@Override
	@POST
	@Path("/verify")
	Boolean checkAccount(@BeanParam Account account);

	@Override
	@POST
	@Path("/photo")
	@Consumes({ "image/gif", "image/jpeg", "image/png" })
	@Produces({ "image/jpeg" })
	byte[] updatePhoto(@QueryParam("name") String name, @BeanParam byte[] photo);

	@Override
	@POST
	@Path("/join-accounts")
	Account joinAccounts(@FormParam("") @QueryParam("account1") Account account1,
			@FormParam("") @QueryParam("account2") Account account2);

	@Override
	@POST
	@Path("/authenticate")
	Customer authenticate(@FormParam("") @QueryParam("name") String name,
			@FormParam("") @QueryParam("password") String password, @CookieParam("sid") String sessionId);

	@Override
	@Path("/accounts/{id}")
	Account getAccount(@PathParam("id") int id);

	@Override
// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/Account.java
// @JsonPropertyOrder({ "accountNumber", "balance", "owner" })
// public class Account implements Serializable {
// 
// 	private static final long serialVersionUID = 3338920622026973343L;
// 	private String accountNumber;
// 	private int balance;
// 	private Customer owner;
// 
// 	public String getAccountNumber() {
// 		return accountNumber;
// 	}
// 
// 	public void setAccountNumber(String accountNumber) {
// 		this.accountNumber = accountNumber;
// 	}
// 
// 	public int getBalance() {
// 		return balance;
// 	}
// 
// 	public void setBalance(int balance) {
// 		this.balance = balance;
// 	}
// 
// 	public Customer getOwner() {
// 		return owner;
// 	}
// 
// 	public void setOwner(Customer owner) {
// 		this.owner = owner;
// 	}
// 
// }
// 
// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/BankService.java
// public interface BankService {
// 
// 	Account transfer(Account fromAccount, Customer actor, Account toAccount, int amount, boolean sendConfirmationSms);
// 
// 	Boolean checkAccount(Account account);
// 
// 	byte[] updatePhoto(String name, byte[] photo);
// 
// 	Account joinAccounts(Account account1, Account account2);
// 
// 	Customer authenticate(String name, String password, String sessionId);
// 
// 	Account getAccount(int id);
// 
// 	boolean isSessionAlive(String sid);
// 
// 	boolean doesCustomerExist(String name);
// 
// 	boolean doesCustomerExist2(String name);
// 
// 	List<Account> getAllAccounts();
// 
// }
// 
// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/Customer.java
// public class Customer implements Serializable {
// 
// 	private static final long serialVersionUID = 5450750236224806988L;
// 	private String name;
// 
// 	public String getName() {
// 		return name;
// 	}
// 
// 	public void setName(String name) {
// 		this.name = name;
// 	}
// 
// }


// Path: src/test/java/com/github/ggeorgovassilis/springjsonmapper/services/jaxrs/BankServiceJaxRs.java
import javax.ws.rs.BeanParam;
import javax.ws.rs.Consumes;
import javax.ws.rs.CookieParam;
import javax.ws.rs.FormParam;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import com.github.ggeorgovassilis.springjsonmapper.jaxrs.Headers;
import com.github.ggeorgovassilis.springjsonmapper.services.Account;
import com.github.ggeorgovassilis.springjsonmapper.services.BankService;
import com.github.ggeorgovassilis.springjsonmapper.services.Customer;
import java.util.List;


	@Override
	@POST
	@Path("/verify")
	Boolean checkAccount(@BeanParam Account account);

	@Override
	@POST
	@Path("/photo")
	@Consumes({ "image/gif", "image/jpeg", "image/png" })
	@Produces({ "image/jpeg" })
	byte[] updatePhoto(@QueryParam("name") String name, @BeanParam byte[] photo);

	@Override
	@POST
	@Path("/join-accounts")
	Account joinAccounts(@FormParam("") @QueryParam("account1") Account account1,
			@FormParam("") @QueryParam("account2") Account account2);

	@Override
	@POST
	@Path("/authenticate")
	Customer authenticate(@FormParam("") @QueryParam("name") String name,
			@FormParam("") @QueryParam("password") String password, @CookieParam("sid") String sessionId);

	@Override
	@Path("/accounts/{id}")
	Account getAccount(@PathParam("id") int id);

	@Override
	@Path("/session/check")