2013年5月17日星期五

[ADF技术-009] ModelADFUtils.java-ADF工具类

持续更新ing...........

package model;
import Const;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

import oracle.adf.share.ADFContext;

import oracle.jbo.Row;
import oracle.jbo.server.AttributeListImpl;

public class ModelADFUtils {
    public ADFUtils() {
        super();
    }
 
    /**
     * 获取SessionScope存储的变量值
     * @param key
     * @return
     */
    public static Object getSessionScope(String key) {
        return ADFContext.getCurrent().getSessionScope().get(key);
    }
 
    /**
     * 获取SessionScope存储的变量值
     * @param key
     * @return
     */
    public static Object getPageFlowScope(String key) {
        return ADFContext.getCurrent().getPageFlowScope().get(key);
    }
 
    /**
     * 获取当前的语言
     * @return
     */
    public static String getLocale(){
        Object o = getSessionScope(Const.LOCALE_FLAG);
        if (Beans.isNotEmpty(o)) {
            String LangVar = EtravelConst.localeMap.get(o.toString());
            if (Beans.isNotEmpty(LangVar)) {
                return LangVar;
            }
        }
        return Const.LAN_CN;
    }
 

    /**
     * 复制一个实体的属性到另外一个实体
     * @param obj
     * @param targetObject
     */

    public static void copy(Object obj,Object targetObject){
        AttributeListImpl attribute=null;
        Row row=null;
        if(targetObject instanceof AttributeListImpl){
            attribute = (AttributeListImpl)targetObject;
        }else if(targetObject instanceof Row){
            row = (Row)targetObject;
        }else{
            return;
        }
     
        if (obj!=null) {
            BeanMap bm = new BeanMap(obj);
            Set<Entry<String, Object>> entrySet = bm.entrySet();
            for (Entry<String, Object> entry : entrySet) {
                VEntry vEntry = (VEntry)entry;
                String key = Beans.firtCharToUpper(vEntry.getKey());
                //不拷贝情况-begin
                if (Beans.isEmpty(vEntry.getType())) {
                    continue;
                }
                if (vEntry.getType().isArray()) { //不拷贝数组
                    continue;
                }
                if (Collection.class.isAssignableFrom(vEntry.getType())) { //不拷贝集合
                    continue;
                }
                if (Map.class.isAssignableFrom(vEntry.getType())) { //不拷贝映射
                    continue;
                }
                if (Beans.isEmpty(key) || Beans.isEmpty(vEntry.getValue())) {
                    continue;
                }
                //不拷贝情况-end
             
                if (Beans.isNotEmpty(row)) {
                    row.setAttribute(key, vEntry.getValue());
                } else if (Beans.isNotEmpty(attribute)) {
                    attribute.setAttribute(key, vEntry.getValue());
                }
            }
        }
    }
}


没有评论 :

发表评论