Package javacommon.base

Source Code of javacommon.base.BaseRemoteFlexService

package javacommon.base;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javacommon.util.ConvertRegisterHelper;
import cn.org.rapid_framework.beanutils.BeanUtils;
import cn.org.rapid_framework.flex.messaging.io.CglibBeanProxy;
import cn.org.rapid_framework.page.Page;
import cn.org.rapid_framework.page.PageRequest;
import flex.messaging.io.BeanProxy;
import flex.messaging.io.PropertyProxyRegistry;

public class BaseRemoteFlexService <E>{
 
  static {
      ConvertRegisterHelper.registerConverters();
    //注册所有Serializable.class的对象都includeReadOnly bean properties
    BeanProxy beanProxy = new CglibBeanProxy();
    beanProxy.setIncludeReadOnly(true);
    PropertyProxyRegistry.getRegistry().register(Serializable.class, beanProxy);
  }
 
  public static Page convertPageList2TargetClass(Page page,Class targetClass){
    List list = page.getResult();
    List convertedList = new ArrayList();
    for(Object o : list) {
      convertedList.add(copyProperties(targetClass,o));
    }
    page.setResult(convertedList);
    return page;
  }

  public static <T> T copyProperties(Class<T> destClass,Object orig) {
    return BeanUtils.copyProperties(destClass, orig);
  }
 
  public static void copyProperties(Object target,Object source) {
    BeanUtils.copyProperties(target, source);
  }
 
  public static <T extends PageRequest> T newQuery(Class<T> queryClazz,PageRequest pr) {
    PageRequest query = org.springframework.beans.BeanUtils
        .instantiateClass(queryClazz);
    copyProperties(query, pr.getFilters());
    query.setPageNumber(pr.getPageNumber());
    query.setPageSize(pr.getPageSize());
    query.setSortColumns(pr.getSortColumns());
    return (T) query;
  }
 
}
TOP

Related Classes of javacommon.base.BaseRemoteFlexService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.