// Path: website/src/main/java/app/api/ProductAJAXWebService.java
// public interface ProductAJAXWebService {
//     @GET
//     @Path("/ajax/product")
//     ListProductResponse list();
// 
//     @GET
//     @Path("/ajax/product/create-config")
//     CreateProductConfigResponse createConfig();
// 
//     @GET
//     @Path("/ajax/product/:id")
//     GetProductResponse get(@PathParam("id") String id);
// 
//     @GET
//     @Path("/ajax/product/:id/child/:childId")
//     GetProductResponse getChild(@PathParam("id") String id, @PathParam("childId") String childId);
// }
// 
// Path: website/src/main/java/app/api/product/CreateProductConfigResponse.java
// public class CreateProductConfigResponse {
//     @NotNull
//     @Property(name = "types")
//     public List<ProductType> types;
// 
//     @NotNull
//     @Property(name = "now")
//     public ZonedDateTime now = ZonedDateTime.now();
// 
//     public static class ProductType {
//         @NotNull
//         @Property(name = "name")
//         public String name;
// 
//         @NotNull
//         @Property(name = "value")
//         public String value;
//     }
// }
// 
// Path: website/src/main/java/app/api/product/GetProductResponse.java
// public class GetProductResponse {
// 
// }
// 
// Path: website/src/main/java/app/api/product/ListProductResponse.java
// public class ListProductResponse {
// 
// }


import app.api.ProductAJAXWebService;
import app.api.product.CreateProductConfigResponse;
import app.api.product.GetProductResponse;
import app.api.product.ListProductResponse;
import core.framework.util.Lists;
package app.web.controller;


/**
 * @author neo
 */
public class ProductAJAXWebServiceImpl implements ProductAJAXWebService {
    @Override
    public ListProductResponse list() {
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            throw new Error(e);
        }
// Path: website/src/main/java/app/api/ProductAJAXWebService.java
// public interface ProductAJAXWebService {
//     @GET
//     @Path("/ajax/product")
//     ListProductResponse list();
// 
//     @GET
//     @Path("/ajax/product/create-config")
//     CreateProductConfigResponse createConfig();
// 
//     @GET
//     @Path("/ajax/product/:id")
//     GetProductResponse get(@PathParam("id") String id);
// 
//     @GET
//     @Path("/ajax/product/:id/child/:childId")
//     GetProductResponse getChild(@PathParam("id") String id, @PathParam("childId") String childId);
// }
// 
// Path: website/src/main/java/app/api/product/CreateProductConfigResponse.java
// public class CreateProductConfigResponse {
//     @NotNull
//     @Property(name = "types")
//     public List<ProductType> types;
// 
//     @NotNull
//     @Property(name = "now")
//     public ZonedDateTime now = ZonedDateTime.now();
// 
//     public static class ProductType {
//         @NotNull
//         @Property(name = "name")
//         public String name;
// 
//         @NotNull
//         @Property(name = "value")
//         public String value;
//     }
// }
// 
// Path: website/src/main/java/app/api/product/GetProductResponse.java
// public class GetProductResponse {
// 
// }
// 
// Path: website/src/main/java/app/api/product/ListProductResponse.java
// public class ListProductResponse {
// 
// }


// Path: website/src/main/java/app/web/controller/ProductAJAXWebServiceImpl.java
import app.api.ProductAJAXWebService;
import app.api.product.CreateProductConfigResponse;
import app.api.product.GetProductResponse;
import app.api.product.ListProductResponse;
import core.framework.util.Lists;

package app.web.controller;


/**
 * @author neo
 */
public class ProductAJAXWebServiceImpl implements ProductAJAXWebService {
    @Override
    public ListProductResponse list() {
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            throw new Error(e);
        }
        return new ListProductResponse();