/*
 * Copyright (C) 2005-2010 Alfresco Software Limited.
 *
 * This file is part of Alfresco
 *
 * Alfresco is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Alfresco is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Alfresco. If not, see .
 */
package org.alfresco.repo.transaction;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
/**
 * Helper class that will look up or create transactional resources.
 * This shortcuts some of the "if not existing, then create" code.
 * 
 * @author Derek Hulley
 * @since 3.2
 */
public abstract class TransactionalResourceHelper
{
    /**
     * Support method to retrieve or create and bind a HashMap to the current transaction.
     * 
     * @param            the map key type
     * @param            the map value type
     * @param resourceKey   the key under which the resource will be stored
     * @return              Returns an previously-bound Map or else a newly-bound HashMap
     */
    public static final  Map getMap(Object resourceKey)
    {
        Map map = AlfrescoTransactionSupport.