// Path: src/main/java/org/thymeleaf/itutorial/beans/Customer.java
// public class Customer {
//     
//     private Integer id;
//     private String firstName;
//     private String lastName;
//     private Gender gender;
//     private PaymentMethod paymentMethod;
//     private int balance;
//     private String personalWebsite;
//     
//     public Customer() {
//         super();
//     }
// 
//     public Customer(
//             final Integer id, final String firstName, final String lastName, 
//             final Gender gender, final PaymentMethod paymentMethod,
//             final int balance, final String personalWebsite) {
//         super();
//         this.id = id;
//         this.firstName = firstName;
//         this.lastName = lastName;
//         this.gender = gender;
//         this.paymentMethod = paymentMethod;
//         this.balance = balance;
//         this.personalWebsite = personalWebsite;
//     }
// 
//     public Integer getId() {
//         return this.id;
//     }
// 
//     public void setId(final Integer id) {
//         this.id = id;
//     }
// 
//     public int getBalance() {
//         return this.balance;
//     }
// 
//     public void setBalance(final int balance) {
//         this.balance = balance;
//     }
// 
//     public String getFirstName() {
//         return this.firstName;
//     }
// 
//     public void setFirstName(final String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public Gender getGender() {
//         return this.gender;
//     }
// 
//     public void setGender(final Gender gender) {
//         this.gender = gender;
//     }
// 
//     public String getLastName() {
//         return this.lastName;
//     }
// 
//     public void setLastName(final String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public PaymentMethod getPaymentMethod() {
//         return this.paymentMethod;
//     }
// 
//     public void setPaymentMethod(final PaymentMethod paymentMethod) {
//         this.paymentMethod = paymentMethod;
//     }
// 
//     public String getPersonalWebsite() {
//         return personalWebsite;
//     }
// 
//     public void setPersonalWebsite(String personalWebsite) {
//         this.personalWebsite = personalWebsite;
//     }
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Gender.java
// public enum Gender {
//     
//     FEMALE("Female gender"),
//     MALE("Male gender");
// 
//     private String description;
//     
//     Gender(final String description) {
//         this.description = description;
//     }
//     
//     public String getDescription() {
//         return this.description;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/PaymentMethod.java
// public enum PaymentMethod {
//     
//     CREDIT_CARD("Credit card payment"),
//     DIRECT_DEBIT("Direct debit payment"),
//     BANK_TRANSFER("Bank transfer payment");
// 
//     private String description;
//     
//     PaymentMethod(final String description) {
//         this.description = description;
//     }
//     
//     public String getDescription() {
//         return this.description;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Product.java
// public class Product {
// 
//     private String description;
//     private Integer price;
//     private Date availableFrom;
//     
//     public Product(final String description, final Integer price, final Date availableFrom) {
//         this.description = description;
//         this.price = price;
//         this.availableFrom = availableFrom;
//     }
// 
//     public Date getAvailableFrom() {
//         return this.availableFrom;
//     }
// 
//     public void setAvailableFrom(final Date availableFrom) {
//         this.availableFrom = availableFrom;
//     }
// 
//     public String getDescription() {
//         return this.description;
//     }
// 
//     public void setDescription(final String description) {
//         this.description = description;
//     }
// 
//     public Integer getPrice() {
//         return this.price;
//     }
// 
//     public void setPrice(final Integer price) {
//         this.price = price;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Amount.java
// public class Amount {
// 
//     private final BigDecimal amount;
//     
//     public Amount(final BigDecimal amount) {
//         this.amount = amount;
//     }
// 
//     public BigDecimal getAmount() {
//         return amount;
//     }
// 
//     @Override
//     public String toString() {
//         return amount.toString();
//     }
// }


import org.thymeleaf.itutorial.beans.Product;
import org.thymeleaf.itutorial.beans.Amount;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.thymeleaf.itutorial.beans.Customer;
import org.thymeleaf.itutorial.beans.Gender;
import org.thymeleaf.itutorial.beans.PaymentMethod;
    public static Product loadProduct() {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return new Product("Wooden wardrobe with glass doors", Integer.valueOf(850), sdf.parse("2013-02-18"));
        } catch (ParseException ex) {
            throw new RuntimeException("Invalid date");
        }
    }
    
    public static List<Product> loadAllProducts() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        List<Product> products = new ArrayList<Product>();
        try {
            products.add(new Product("Chair", Integer.valueOf(25), sdf.parse("2013-02-18")));
            products.add(new Product("Table", Integer.valueOf(150), sdf.parse("2013-02-15")));
            products.add(new Product("Armchair", Integer.valueOf(85), sdf.parse("2013-02-20")));
            products.add(new Product("Wardrobe", Integer.valueOf(450), sdf.parse("2013-02-21")));
            products.add(new Product("Kitchen table", Integer.valueOf(49), sdf.parse("2013-02-15")));
            products.add(new Product("Bookcase", Integer.valueOf(80), sdf.parse("2013-02-17")));
        } catch (ParseException ex) {
            throw new RuntimeException("Invalid date");
        }
        return products;
    }

    public static Customer loadCustomer() {
        Customer customer = new Customer();
        customer.setId(Integer.valueOf(1085));
        customer.setFirstName("Peter");
        customer.setLastName("Jackson");
// Path: src/main/java/org/thymeleaf/itutorial/beans/Customer.java
// public class Customer {
//     
//     private Integer id;
//     private String firstName;
//     private String lastName;
//     private Gender gender;
//     private PaymentMethod paymentMethod;
//     private int balance;
//     private String personalWebsite;
//     
//     public Customer() {
//         super();
//     }
// 
//     public Customer(
//             final Integer id, final String firstName, final String lastName, 
//             final Gender gender, final PaymentMethod paymentMethod,
//             final int balance, final String personalWebsite) {
//         super();
//         this.id = id;
//         this.firstName = firstName;
//         this.lastName = lastName;
//         this.gender = gender;
//         this.paymentMethod = paymentMethod;
//         this.balance = balance;
//         this.personalWebsite = personalWebsite;
//     }
// 
//     public Integer getId() {
//         return this.id;
//     }
// 
//     public void setId(final Integer id) {
//         this.id = id;
//     }
// 
//     public int getBalance() {
//         return this.balance;
//     }
// 
//     public void setBalance(final int balance) {
//         this.balance = balance;
//     }
// 
//     public String getFirstName() {
//         return this.firstName;
//     }
// 
//     public void setFirstName(final String firstName) {
//         this.firstName = firstName;
//     }
// 
//     public Gender getGender() {
//         return this.gender;
//     }
// 
//     public void setGender(final Gender gender) {
//         this.gender = gender;
//     }
// 
//     public String getLastName() {
//         return this.lastName;
//     }
// 
//     public void setLastName(final String lastName) {
//         this.lastName = lastName;
//     }
// 
//     public PaymentMethod getPaymentMethod() {
//         return this.paymentMethod;
//     }
// 
//     public void setPaymentMethod(final PaymentMethod paymentMethod) {
//         this.paymentMethod = paymentMethod;
//     }
// 
//     public String getPersonalWebsite() {
//         return personalWebsite;
//     }
// 
//     public void setPersonalWebsite(String personalWebsite) {
//         this.personalWebsite = personalWebsite;
//     }
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Gender.java
// public enum Gender {
//     
//     FEMALE("Female gender"),
//     MALE("Male gender");
// 
//     private String description;
//     
//     Gender(final String description) {
//         this.description = description;
//     }
//     
//     public String getDescription() {
//         return this.description;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/PaymentMethod.java
// public enum PaymentMethod {
//     
//     CREDIT_CARD("Credit card payment"),
//     DIRECT_DEBIT("Direct debit payment"),
//     BANK_TRANSFER("Bank transfer payment");
// 
//     private String description;
//     
//     PaymentMethod(final String description) {
//         this.description = description;
//     }
//     
//     public String getDescription() {
//         return this.description;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Product.java
// public class Product {
// 
//     private String description;
//     private Integer price;
//     private Date availableFrom;
//     
//     public Product(final String description, final Integer price, final Date availableFrom) {
//         this.description = description;
//         this.price = price;
//         this.availableFrom = availableFrom;
//     }
// 
//     public Date getAvailableFrom() {
//         return this.availableFrom;
//     }
// 
//     public void setAvailableFrom(final Date availableFrom) {
//         this.availableFrom = availableFrom;
//     }
// 
//     public String getDescription() {
//         return this.description;
//     }
// 
//     public void setDescription(final String description) {
//         this.description = description;
//     }
// 
//     public Integer getPrice() {
//         return this.price;
//     }
// 
//     public void setPrice(final Integer price) {
//         this.price = price;
//     }
//     
// }
// 
// Path: src/main/java/org/thymeleaf/itutorial/beans/Amount.java
// public class Amount {
// 
//     private final BigDecimal amount;
//     
//     public Amount(final BigDecimal amount) {
//         this.amount = amount;
//     }
// 
//     public BigDecimal getAmount() {
//         return amount;
//     }
// 
//     @Override
//     public String toString() {
//         return amount.toString();
//     }
// }


// Path: src/main/java/org/thymeleaf/itutorial/DAO.java
import org.thymeleaf.itutorial.beans.Product;
import org.thymeleaf.itutorial.beans.Amount;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.thymeleaf.itutorial.beans.Customer;
import org.thymeleaf.itutorial.beans.Gender;
import org.thymeleaf.itutorial.beans.PaymentMethod;

    public static Product loadProduct() {
        try {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            return new Product("Wooden wardrobe with glass doors", Integer.valueOf(850), sdf.parse("2013-02-18"));
        } catch (ParseException ex) {
            throw new RuntimeException("Invalid date");
        }
    }
    
    public static List<Product> loadAllProducts() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        List<Product> products = new ArrayList<Product>();
        try {
            products.add(new Product("Chair", Integer.valueOf(25), sdf.parse("2013-02-18")));
            products.add(new Product("Table", Integer.valueOf(150), sdf.parse("2013-02-15")));
            products.add(new Product("Armchair", Integer.valueOf(85), sdf.parse("2013-02-20")));
            products.add(new Product("Wardrobe", Integer.valueOf(450), sdf.parse("2013-02-21")));
            products.add(new Product("Kitchen table", Integer.valueOf(49), sdf.parse("2013-02-15")));
            products.add(new Product("Bookcase", Integer.valueOf(80), sdf.parse("2013-02-17")));
        } catch (ParseException ex) {
            throw new RuntimeException("Invalid date");
        }
        return products;
    }

    public static Customer loadCustomer() {
        Customer customer = new Customer();
        customer.setId(Integer.valueOf(1085));
        customer.setFirstName("Peter");
        customer.setLastName("Jackson");
        customer.setGender(Gender.MALE);