/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at legal-notices/CDDLv1_0.txt.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* Copyright 2014 ForgeRock AS
*/
package org.opends.server.util;
import java.util.*;
/**
* Utility class for {@link Collection}s.
*/
public final class CollectionUtils
{
private CollectionUtils()
{
// private for utility classes
}
/**
* Creates a new {@link ArrayList} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new ArrayList
* @return a new ArrayList with the provided elements
*/
public static <E> ArrayList<E> newArrayList(E... elements)
{
return new ArrayList<E>(Arrays.asList(elements));
}
/**
* Creates a new {@link LinkedList} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new LinkedList
* @return a new LinkedList with the provided elements
*/
public static <E> LinkedList<E> newLinkedList(E... elements)
{
return new LinkedList<E>(Arrays.asList(elements));
}
/**
* Creates a new {@link List} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new List
* @return a new ArrayList with the provided elements
*/
public static <E> List<E> newList(E... elements)
{
return newArrayList(elements);
}
/**
* Creates a new {@link HashSet} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new HashSet
* @return a new HashSet with the provided elements
*/
public static <E> HashSet<E> newHashSet(E... elements)
{
return new HashSet<E>(Arrays.asList(elements));
}
/**
* Creates a new {@link LinkedHashSet} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new LinkedHashSet
* @return a new LinkedHashSet with the provided elements
*/
public static <E> LinkedHashSet<E> newLinkedHashSet(E... elements)
{
return new LinkedHashSet<E>(Arrays.asList(elements));
}
/**
* Creates a new {@link TreeSet} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new TreeSet
* @return a new TreeSet with the provided elements
*/
public static <E> TreeSet<E> newTreeSet(E... elements)
{
return new TreeSet<E>(Arrays.asList(elements));
}
/**
* Creates a new {@link SortedSet} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new SortedSet
* @return a new TreeSet with the provided elements
*/
public static <E> SortedSet<E> newSortedSet(E... elements)
{
return newTreeSet(elements);
}
/**
* Creates a new {@link Set} with the provided elements.
*
* @param <E>
* the elements' type
* @param elements
* the elements to add to the new Set
* @return a new TreeSet with the provided elements
*/
public static <E> Set<E> newSet(E... elements)
{
return newHashSet(elements);
}
}