// Path: src/main/java/com/avicit/framework/web/support/pagination/Page.java
// public class Page<E> {
//     private boolean hasPre;//是否首页
//     private boolean hasNext;//是否尾页
//     private List<E> items;//当前页包含的记录列表
//     private int index;//当前页页码(起始为1)
//     private IPageContext<E> context;
//     
//     public IPageContext<E> getContext() {
//         return this.context;
//     }
// 
//     public void setContext(IPageContext<E> context) {
//         this.context = context;
//     }
// 
//     public int getIndex() {
//         return this.index;
//     }
// 
//     public void setIndex(int index) {
//         this.index = index;
//     }
// 
//     public boolean isHasPre() {
//         return this.hasPre;
//     }
// 
//     public void setHasPre(boolean hasPre) {
//         this.hasPre = hasPre;
//     }
// 
//     public boolean isHasNext() {
//         return this.hasNext;
//     }
// 
//     public void setHasNext(boolean hasNext) {
//         this.hasNext = hasNext;
//     }
// 
//     public List<E> getItems() {
//         return this.items == null ? Collections.<E>emptyList() : this.items;
//     }
// 
//     public void setItems(List<E> items) {
//         this.items = items;
//     }
//     
// }


import java.util.List;
import com.avicit.framework.web.support.pagination.Page;
package com.avicit.framework.support.service;




public interface BaseService<M extends java.io.Serializable, PK extends java.io.Serializable> {
    
    public M save(M model);

    public void saveOrUpdate(M model);
    
    public void update(M model);
    
    public void merge(M model);

    public void delete(PK id);

    public void deleteObject(M model);

    public M get(PK id);
    
    public int countAll();
    
    public List<M> listAll();
    
    public Page<M> listAll(int pn);
    
    public Page<M> listAll(int pn, int pageSize);
    

    public Page<M> pre(PK pk, int pn, int pageSize);
    
    public Page<M> next(PK pk, int pn, int pageSize);
    
    public Page<M> pre(PK pk, int pn);
    
// Path: src/main/java/com/avicit/framework/web/support/pagination/Page.java
// public class Page<E> {
//     private boolean hasPre;//是否首页
//     private boolean hasNext;//是否尾页
//     private List<E> items;//当前页包含的记录列表
//     private int index;//当前页页码(起始为1)
//     private IPageContext<E> context;
//     
//     public IPageContext<E> getContext() {
//         return this.context;
//     }
// 
//     public void setContext(IPageContext<E> context) {
//         this.context = context;
//     }
// 
//     public int getIndex() {
//         return this.index;
//     }
// 
//     public void setIndex(int index) {
//         this.index = index;
//     }
// 
//     public boolean isHasPre() {
//         return this.hasPre;
//     }
// 
//     public void setHasPre(boolean hasPre) {
//         this.hasPre = hasPre;
//     }
// 
//     public boolean isHasNext() {
//         return this.hasNext;
//     }
// 
//     public void setHasNext(boolean hasNext) {
//         this.hasNext = hasNext;
//     }
// 
//     public List<E> getItems() {
//         return this.items == null ? Collections.<E>emptyList() : this.items;
//     }
// 
//     public void setItems(List<E> items) {
//         this.items = items;
//     }
//     
// }


// Path: src/main/java/com/avicit/framework/support/service/BaseService.java
import java.util.List;
import com.avicit.framework.web.support.pagination.Page;

package com.avicit.framework.support.service;




public interface BaseService<M extends java.io.Serializable, PK extends java.io.Serializable> {
    
    public M save(M model);

    public void saveOrUpdate(M model);
    
    public void update(M model);
    
    public void merge(M model);

    public void delete(PK id);

    public void deleteObject(M model);

    public M get(PK id);
    
    public int countAll();
    
    public List<M> listAll();
    
    public Page<M> listAll(int pn);
    
    public Page<M> listAll(int pn, int pageSize);
    

    public Page<M> pre(PK pk, int pn, int pageSize);
    
    public Page<M> next(PK pk, int pn, int pageSize);
    
    public Page<M> pre(PK pk, int pn);
    
    public Page<M> next(PK pk, int pn);