rdbmsbasedmethoddefinitionmap.java

来自「一个关于tlms的一个小程序 看看能否帮助到别人」· Java 代码 · 共 71 行

JAVA
71
字号
package com.szmx.component.security.acegipro.intercept.method;

import org.acegisecurity.intercept.method.MethodDefinitionSource;
import org.acegisecurity.intercept.method.AbstractMethodDefinitionSource;
import org.acegisecurity.ConfigAttributeDefinition;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.szmx.component.security.acegipro.providers.dao.DaoMethodDefinitionMapProvider;

import java.lang.reflect.Method;
import java.util.Iterator;

/**
 * ================================================================
 * Copyright 2006 szmx
 * <p/>
 * Change Revision
 * ---------------------------------------------------------------
 * Date              Author            Remarks
 * Mar 17, 2006     BZhang      Create class com.szmx.component.security.acegipro.intercept.method.RdbmsBasedMethodDefinitionMap
 * ================================================================
 */
public class RdbmsBasedMethodDefinitionMap extends AbstractMethodDefinitionSource
{
    //~ Static fields/initializers =============================================
    private static final Log logger = LogFactory.getLog(RdbmsBasedMethodDefinitionMap.class);

    //~ Instance fields ========================================================
    private DaoMethodDefinitionMapProvider daoMethodDefinitionMapProvider = null;
    private MethodDefinitionSource daoMethodDefinitionSource = null;   // cache

    //~ Methods ================================================================
    public Iterator getConfigAttributeDefinitions() {
        return getDaoMethodDefinitionSource().getConfigAttributeDefinitions();
    }

    protected ConfigAttributeDefinition lookupAttributes(Method method) {
        return ((OpenedMethodDefinitionMap) getDaoMethodDefinitionSource()).lookupAttributes(method);
    }

    /**
     * Reload MethodDefinitionSource Object From DAO
     * & stored as property daoMethodDefinitionSource
     */
    public void retrieveDaoMethodDefinitionSource() {
        if (daoMethodDefinitionMapProvider == null) {
            String msg = "None DaoMethodDefinitionMapProvider setted.";
            logger.error(msg);
            throw new IllegalArgumentException(msg);
        }

        // Load OpenedMethodDefinitionMap from datasource.
        daoMethodDefinitionSource = daoMethodDefinitionMapProvider.getDaoMethodDefinitionMap();
        logger.debug("Retrieved DaoMethodDefinitionSource = " + daoMethodDefinitionSource);
    }

    //~ Getter & Setter ========================================================
    public void setDaoMethodDefinitionMapProvider(DaoMethodDefinitionMapProvider daoMethodDefinitionMapProvider) {
        this.daoMethodDefinitionMapProvider = daoMethodDefinitionMapProvider;
    }

    public MethodDefinitionSource getDaoMethodDefinitionSource() {
        if (daoMethodDefinitionSource == null) {
            retrieveDaoMethodDefinitionSource();
        }
        return daoMethodDefinitionSource;
    }
}

⌨️ 快捷键说明

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