// 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 com.github.ggeorgovassilis.springjsonmapper.model.Header;
import com.github.ggeorgovassilis.springjsonmapper.services.Account;
import com.github.ggeorgovassilis.springjsonmapper.services.BankService;
import com.github.ggeorgovassilis.springjsonmapper.services.Customer;
import org.springframework.web.bind.annotation.*;
import java.util.List;
package com.github.ggeorgovassilis.springjsonmapper.services.spring;



/**
 * Mapping to a hypothetical bank service REST API using Spring annotations
 *
 * @author george georgovassilis
 */
public interface BankServiceShortcutSpring extends BankService {

	@Override
	@PostMapping("/transfer")
	Account transfer(@RequestBody @RequestParam("fromAccount") Account fromAccount,
// 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/spring/BankServiceShortcutSpring.java
import com.github.ggeorgovassilis.springjsonmapper.model.Header;
import com.github.ggeorgovassilis.springjsonmapper.services.Account;
import com.github.ggeorgovassilis.springjsonmapper.services.BankService;
import com.github.ggeorgovassilis.springjsonmapper.services.Customer;
import org.springframework.web.bind.annotation.*;
import java.util.List;

package com.github.ggeorgovassilis.springjsonmapper.services.spring;



/**
 * Mapping to a hypothetical bank service REST API using Spring annotations
 *
 * @author george georgovassilis
 */
public interface BankServiceShortcutSpring extends BankService {

	@Override
	@PostMapping("/transfer")
	Account transfer(@RequestBody @RequestParam("fromAccount") Account fromAccount,
	                 @RequestBody @RequestParam("actor") Customer actor,