org.gatein.common.util.CollectionBuilder Maven / Gradle / Ivy
/******************************************************************************
* JBoss, a division of Red Hat *
* Copyright 2009, Red Hat Middleware, LLC, and individual *
* contributors as indicated by the @authors tag. See the *
* copyright.txt in the distribution for a full listing of *
* individual contributors. *
* *
* This 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 software 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 this software; if not, write to the Free *
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
* 02110-1301 USA, or see the FSF site: http://www.fsf.org. *
******************************************************************************/
package org.gatein.common.util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Collection;
/**
* An helper to build collection of object in a simple manner.
*
* @author Julien Viet
* @version $Revision: 7234 $
*/
public class CollectionBuilder, V>
{
/** . */
private C collection;
private CollectionBuilder(C collection)
{
this.collection = collection;
}
public static , V> CollectionBuilder create(C collection)
{
return new CollectionBuilder(collection);
}
public static CollectionBuilder, V> arrayList()
{
return new CollectionBuilder, V>(new ArrayList());
}
public static CollectionBuilder, V> arrayList(V v)
{
CollectionBuilder, V> builder = new CollectionBuilder, V>(new ArrayList());
builder.add(v);
return builder;
}
public static CollectionBuilder, V> linkedList()
{
return new CollectionBuilder, V>(new LinkedList());
}
public static CollectionBuilder, V> linkedList(V v)
{
CollectionBuilder, V> builder = new CollectionBuilder, V>(new LinkedList());
builder.add(v);
return builder;
}
public static CollectionBuilder, V> hashSet()
{
return new CollectionBuilder, V>(new HashSet());
}
public static CollectionBuilder, V> hashSet(V v)
{
CollectionBuilder, V> builder = new CollectionBuilder, V>(new HashSet());
builder.add(v);
return builder;
}
/**
* Add the object to the collection.
*
* @param o the object to add
* @return the builder
*/
public CollectionBuilder add(V o)
{
collection.add(o);
return this;
}
/**
* Add all the objects to the collection.
*
* @param all the objects to add
* @return the builder
*/
public CollectionBuilder addAll(Collection all)
{
collection.addAll(all);
return this;
}
public C get()
{
return collection;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy