/******************************************************************************* * Copyright (c) 2006-2010 eBay Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 *******************************************************************************/ package org.ebayopensource.turmeric.eclipse.utils.collections; import java.util.Collection; import java.util.HashSet; import java.util.LinkedHashSet; import java.util.Set; import java.util.TreeSet; /** * The Class SetUtil. */ public class SetUtil { /** * Tree set. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > treeSet( final T... objects ) { final Set< T > list = new TreeSet< T >(); add( list, objects ); return list; } /** * Tree set. * * @param <T> the generic type * @param collection the collection * @return the sets the */ public static < T > Set< T > treeSet( final Collection< T > collection ) { final Set< T > list = new TreeSet< T >(); if( collection != null && collection.size() > 0 ) list.addAll( collection ); return list; } /** * Hash set. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > hashSet( final T... objects ) { final Set< T > list = new HashSet< T >(); add( list, objects ); return list; } /** * Hash set. * * @param <T> the generic type * @param collection the collection * @return the sets the */ public static < T > Set< T > hashSet( final Collection< T > collection ) { final Set< T > list = new HashSet< T >(); if( collection != null && collection.size() > 0 ) list.addAll( collection ); return list; } /** * Linked set. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > linkedSet( final T... objects ) { final Set< T > list = new LinkedHashSet< T >(); add( list, objects ); return list; } /** * Linked set. * * @param <T> the generic type * @param collection the collection * @return the sets the */ public static < T > Set< T > linkedSet( final Collection< T > collection ) { final Set< T > list = new LinkedHashSet< T >(); if( collection != null && collection.size() > 0 ) list.addAll( collection ); return list; } /** * Sets the. * * @param <T> the generic type * @param collection the collection * @return the sets the */ public static < T > Set< T > set( final Collection< T > collection ) { final Set< T > list = new HashSet< T >(); if( collection != null && collection.size() > 0 ) list.addAll( collection ); return list; } /** * New set. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > newSet( final T... objects ) { return set( objects ); } /** * To set. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > toSet( final T... objects ) { return set( objects ); } /** * Sets the. * * @param <T> the generic type * @param objects the objects * @return the sets the */ public static < T > Set< T > set( final T... objects ) { return hashSet( objects ); } /** * Adds the. * * @param <T> the generic type * @param set the set * @param objects the objects * @return the sets the */ public static < T > Set< T > add( final Set< T > set, final T... objects ) { if( objects == null ) return set; for( final T object : objects ) set.add( object ); return set; } /** * Sets the add. * * @param <T> the generic type * @param set the set * @param objects the objects * @return the sets the */ public static < T > Set< T > setAdd( final Set< T > set, final T... objects ) { return add( set, objects ); } /** * Removes the. * * @param <T> the generic type * @param set the set * @param objects the objects * @return the sets the */ public static < T > Set< T > remove( final Set< T > set, final T... objects ) { for( final T object : objects ) set.remove( object ); return set; } /** * Sets the remove. * * @param <T> the generic type * @param set the set * @param objects the objects * @return the sets the */ public static < T > Set< T > setRemove( final Set< T > set, final T... objects ) { return remove( set, objects ); } }