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

📄 lazyjbtopcollection.java

📁 OPIAM stands for Open Identity and Access Management. This Suite will provide modules for user & rig
💻 JAVA
字号:
/*
 * OPIAM Suite
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */

package opiam.admin.faare.persistence;

import opiam.admin.faare.MessageUtil;
import opiam.admin.faare.persistence.javabeans.JBTop;
import opiam.admin.faare.service.UserContext;

import org.apache.log4j.Logger;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;


/**
 * Lazy loading for attributes corresponding to mapped objects.
 */
public class LazyJBTopCollection extends LazyStringCollection
{
    /** Instance of logger. */
    private static Logger _logger = Logger.getLogger(LazyJBTopCollection.class);

    /** List of loaded elements. */
    private Map loaded;

    /**
     * Creates a new LazyJBTopCollection object.
     *
     * @param enclosing Dname of entry containing attribute to load.
     * @param atts Attribute to load.
     * @param auserContext Connected user context.
     */
    public LazyJBTopCollection(String enclosing, ArrayList atts,
        UserContext auserContext)
    {
        super(enclosing, atts, auserContext);
        loaded = new HashMap();

        _logger.debug("constructeur enclosing : " + enclosing);
        _logger.debug("constructeur userContext : " + auserContext);
    }

    /**
     * @see java.util.Collection#add(Object).
     */
    public boolean add(Object o)
    {
        super.add(o);

        return (loaded.put(((JBTop) o).getDn(), o) != o);
    }

    /**
     * @see java.util.Collection#iterator().
     */
    public Iterator iterator()
    {
        return new LazyJBTopIterator(this);
    }

    /**
     * Loads element corresponding to given dname.
     *
     * @param dn Dname.
     * @param auserContext User context.
     *
     * @return Loaded element.
     */
    protected Object lazyLoadObj(Object dn, UserContext auserContext)
    {
        _logger.debug("lazyLoad dn : " + dn);

        Object o;

        try
        {
            o = PersistenceLDAP.load((String) dn, auserContext);
            loaded.put(dn, o);

            return o;
        }
        catch (Exception e)
        {
            _logger.error(MessageUtil.formatMessage(
                    "MSG_LDAP_ERROR_NO_SUCH_OBJECT", dn));

            return null;
        }
    }

    /**
     * Gets list of loaded elements.
     * @return map of elements.
     */
    protected Map getLoaded()
    {
        return loaded;
    }
}

⌨️ 快捷键说明

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