///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2008, Robert D. Eden All Rights Reserved.
//
// This library 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 2.1 of the License, or (at your option) any later version.
//
// This library 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 General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
///////////////////////////////////////////////////////////////////////////////


package gnu.trove;


import java.util.*;

import gnu.trove.decorator.*;



/**
 * This is a static utility class that provides functions for simplifying creation of
 * decorators.
 *
 * @author  Robert D. Eden
 * @since   Trove 2.1
 */
public class Decorators {
    // Hide the constructor
    private Decorators() {}

    
#REPLICATED1#


#REPLICATED2#


#REPLICATED3#


#REPLICATED4#
}
====START_REPLICATED_CONTENT #1====
    /**
     * Wrap the given map in a decorator that uses the standard {@link java.util.Map Map}
     * interface.
     */
    public static Map<#KT#,#VT#> wrap( T#K##V#HashMap map ) {
        return new T#K##V#HashMapDecorator( map );
    }
=====END_REPLICATED_CONTENT #1=====
====START_REPLICATED_CONTENT #2====
    /**
     * Wrap the given map in a decorator that uses the standard {@link java.util.Map Map}
     * interface.
     */
    public static <T> Map<T,#ET#> wrap( TObject#E#HashMap<T> map ) {
        return new TObject#E#HashMapDecorator<T>( map );
    }
=====END_REPLICATED_CONTENT #2=====
====START_REPLICATED_CONTENT #3====
    /**
     * Wrap the given map in a decorator that uses the standard {@link java.util.Map Map}
     * interface.
     */
    public static <T> Map<#ET#,T> wrap( T#E#ObjectHashMap<T> map ) {
        return new T#E#ObjectHashMapDecorator<T>( map );
    }
=====END_REPLICATED_CONTENT #3=====
====START_REPLICATED_CONTENT #4====
    /**
     * Wrap the given set in a decorator that uses the standard {@link java.util.Set Set}
     * interface.
     */
    public static Set<#ET#> wrap( T#E#HashSet set ) {
        return new T#E#HashSetDecorator( set );
    }
=====END_REPLICATED_CONTENT #4=====