All Downloads are FREE. Search and download functionalities are using the official Maven repository.

pers.zr.opensource.magic.dao.action.ActionBuilderContainer Maven / Gradle / Ivy

There is a newer version: 1.0.1
Show newest version
package pers.zr.opensource.magic.dao.action;

import pers.zr.opensource.magic.dao.constants.ActionMode;

import java.util.HashMap;
import java.util.Map;

/**
 *  ActionBuilderContainer
 *
 *  ActionBuilder cache
 *
 * Created by zhurong on 2016-4-29.
 */
public class ActionBuilderContainer {

    private static Map queryBuilderMap = new HashMap();

    private static Map deleteBuilderMap = new HashMap();

    private static Map insertBuilderMap = new HashMap();

    private static Map updateBuilderMap = new HashMap();

    public static  T getActionBuilder(ActionTable table, ActionMode mode) {

        if(table == null) {
            throw new IllegalArgumentException("ActionTable can not be null!");
        }

        ActionBuilder actionBuilder = null;

        if(ActionMode.QUERY == mode) {

            actionBuilder = queryBuilderMap.get(table);

        }else if(ActionMode.DELETE == mode) {

            actionBuilder = deleteBuilderMap.get(table);

        }else if(ActionMode.INSERT == mode) {

            actionBuilder = insertBuilderMap.get(table);

        }else if(ActionMode.UPDATE == mode) {

            actionBuilder = updateBuilderMap.get(table);

        }else {
            throw new IllegalArgumentException("Invalid action mode!");
        }

        return (T)actionBuilder;

    }

    public static void setActionBuilder(ActionBuilder builder) {


        if(builder == null) {
            throw new IllegalArgumentException("instance of ActionBuilder can not be null!");
        }

        ActionTable table = builder.getTable();

        if(table == null) {
            throw new IllegalArgumentException("ActionTable property of ActionBuilder can not be null!");
        }

        ActionMode mode = builder.getActionMode();

        if(ActionMode.QUERY == mode) {

            queryBuilderMap.put(table, (QueryBuilder) builder);

        }else if(ActionMode.INSERT == mode) {

            insertBuilderMap.put(table, (InsertBuilder) builder);

        }else if(ActionMode.UPDATE == mode){

            updateBuilderMap.put(table, (UpdateBuilder) builder);

        }else if(ActionMode.DELETE == mode) {

            deleteBuilderMap.put(table, (DeleteBuilder) builder);

        }else {

            throw new IllegalArgumentException("Invalid action mode!");

        }


    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy