001 /*******************************************************************************
002 * Portions created by Sebastian Thomschke are copyright (c) 2005-2011 Sebastian
003 * Thomschke.
004 *
005 * All Rights Reserved. This program and the accompanying materials
006 * are made available under the terms of the Eclipse Public License v1.0
007 * which accompanies this distribution, and is available at
008 * http://www.eclipse.org/legal/epl-v10.html
009 *
010 * Contributors:
011 * Sebastian Thomschke - initial implementation.
012 *******************************************************************************/
013 package net.sf.oval.collection;
014
015 import java.util.List;
016 import java.util.Map;
017 import java.util.Set;
018
019 /**
020 * @author Sebastian Thomschke
021 */
022 public interface CollectionFactory
023 {
024 /**
025 * Instantiate an ArrayList like list object
026 * @return a new list
027 */
028 <ValueType> List<ValueType> createList();
029
030 /**
031 * Instantiate an ArrayList like list object
032 * @return a new list
033 */
034 <ValueType> List<ValueType> createList(int initialCapacity);
035
036 /**
037 * Instantiate a HashMap like map object
038 * @return a new map
039 */
040 <KeyType, ValueType> Map<KeyType, ValueType> createMap();
041
042 /**
043 * Instantiate a HashMap like map object
044 * @return a new map
045 */
046 <KeyType, ValueType> Map<KeyType, ValueType> createMap(int initialCapacity);
047
048 /**
049 * Instantiate a HashSet like set object
050 * @return a new set
051 */
052 <ValueType> Set<ValueType> createSet();
053
054 /**
055 * Instantiate a HashSet like set object
056 * @return a new set
057 */
058 <ValueType> Set<ValueType> createSet(int initialCapacity);
059 }