⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 enumsearch.java

📁 本系统有十分强大的功能
💻 JAVA
字号:
package org.opencustomer.framework.db.util.engine.configuration;

import java.util.LinkedHashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.struts.action.ActionMessages;
import org.opencustomer.framework.util.FormUtility;
import org.opencustomer.framework.webapp.util.html.Column;

public final class EnumSearch implements Search {

    private Class<? extends Enum> clazz;
    
    private LinkedHashMap<Enum, String> messageKeys = new LinkedHashMap<Enum, String>();
    
    private Enum defaultValue;
    
    private Enum value;
    
    public EnumSearch() {
    }
    
    public EnumSearch(Class<? extends Enum> clazz) {
        this.clazz = clazz;
    }

    public Map<Enum, String> getMessageKeys() {
        return messageKeys;
    }

    public void setMessageKeys(Map<Enum, String> messageKeys) {
        this.messageKeys.clear();
        this.messageKeys.putAll(messageKeys);
    }
    
    public Class<? extends Enum> getClazz() {
        return clazz;
    }

    public void setClazz(Class<? extends Enum> clazz) {
        this.clazz = clazz;
    }
    
    public Enum getDefaultValue() {
        return defaultValue;
    }
    
    public void setDefaultValue(Enum defaultValue) {
        this.defaultValue = defaultValue;
        
        this.value = defaultValue;
    }
    
    public Enum getValue() {
        return value;
    }

    public void setValue(Enum value) {
        this.value = value;
    }

    public void load(Column column, ActionMessages errors, HttpServletRequest request) {
        String value = FormUtility.adjustParameter(request.getParameter("search_"+column.getPosition()));
        
        if(value != null) {
            for(Enum e : messageKeys.keySet()) {
                if(e == null) {
                    if(value == null || value.trim().length() == 0) {
                        this.value = null;
                    }
                } else if(e.name().equals(value)) {
                    this.value = e;
                }
            }
        } else {
            this.value = null;
        }
    }
    
    public void reset() {
        this.value = defaultValue;
    }

    @Override
    public String toString() {
        ToStringBuilder builder = new ToStringBuilder(this);
        
        builder.append("clazz",       clazz);
        builder.append("messageKeys", messageKeys);
        builder.append("defaultValue", defaultValue);
        builder.append("value", value);
        
        return builder.toString();
    }
    
    @Override
    public Object clone() {
        try {
            EnumSearch objectClone = (EnumSearch)super.clone();

            objectClone.clazz        = this.clazz;
            objectClone.messageKeys  = (LinkedHashMap<Enum, String>)this.messageKeys.clone();
            
            return objectClone;

        } catch(CloneNotSupportedException e) {
            throw new InternalError();
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -