Logo
Distributed Genetic Programming Framework
print print

File org.sfc.collections.Collections.java

Here you can find all the information about the file org.sfc.collections.Collections.java. You may explore it here or download it onto your local disk.
/*
 * Copyright (c) 2005 Thomas Weise
 *
 * E-Mail           : tweise@gmx.de
 * Creation Date    : 2005-07-04 06:14:48
 * Original Filename: org.sfc.collections.Collections.java
 * Version          : 2.0.1
 * Last modification: 2006-05-28
 *                by: Thomas Weise
 *
 * License          : GNU LESSER GENERAL PUBLIC LICENSE
 *                    Version 2.1, February 1999
 *                    You should have received a copy of this license along
 *                    with this library; if not, write to the Free Software
 *                    Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 *                    MA 02111-1307, USA or download the license under
 *                    http://www.gnu.org/copyleft/lesser.html.
 *
 * Warranty         : This software is provided "as is" 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.
 */


package org.sfc.collections;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.Vector;

import org.sfc.utils.Typesafe;

/**
 * This class is a singleton that should be used to create and manage
 * collections.
 *
 * @author Thomas Weise
 */

public final  class Collections
  {
/**
 * The the empty list.
 */

  public static final List<?>     EMPTY_LIST    
                              = java.util.Collections.EMPTY_LIST;
/**
 * The the empty set.
 */

  public static final Set<?>     EMPTY_SET   
                              = java.util.Collections.EMPTY_SET;
/**
 * The the empty map.
 */

  public static final Map<?,?>    EMPTY_MAP
                              = java.util.Collections.EMPTY_MAP;
/**
 * The internal instance of the empty iterator.
 */

  public static final IteratorBase<?> EMPTY_ITERATOR = new EI();


/**
 * The hidden internal constructor.
 */

  private Collections ()
    {
    Typesafe.do_not_call();
    }

/**
 * Creates a new collection with an optional initial count of free slots.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the collection should be created for.
 * @param p_initial_count The initial count of free slots.
 *                        If this parameter is <code>0</code>, a resonable
 *                        default will be used.
 * @return  The new <code>Collection</code>-instance.
 */

  public  static  final <ItemType> Collection<ItemType> create_collection
                                            (final int  p_initial_count)
    {
    return create_list(p_initial_count);
    }


/**
 * Creates a new list with an optional initial count of free slots.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the list should be created for.
 * @param p_initial_count The initial count of free slots.
 *                        If this parameter is <code>0</code>, a resonable
 *                        default will be used.
 * @return  The new <code>List</code>-instance.
 *
 */

  public  static  final <ItemType> List<ItemType>
                               create_list(final int p_initial_count)
    {

    return (p_initial_count > 0) ?
           new ArrayList<ItemType>(p_initial_count) :
           new ArrayList<ItemType>();
    }

/**
 * Creates a new synchronized list with an optional initial count of free
 * slots.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the list should be created for.
 * @param p_initial_count The initial count of free slots.
 *                        If this parameter is <code>0</code>, a resonable
 *                        default will be used.
 * @return  The new <code>List</code>-instance.
 *
 */

  public  static  final <ItemType> List<ItemType>
                               create_sync_list(final int p_initial_count)
    {

    return (p_initial_count > 0) ?
           new Vector<ItemType>(p_initial_count) :
           new Vector<ItemType>();
    }

/**
 * Creates a new map with an optional initial count of free slots.
 * @param <KeyType>    The key type for the set to create.
 * @param <ValueType>  The value type for the set to create.
 * @param p_initial_count The initial count of free slots.
 *                        If this parameter is <code>0</code>, a resonable
 *                        default will be used.
 * @return  The new <code>Map</code>-instance.
 */

  public  static  final <KeyType, ValueType>  Map<KeyType, ValueType>
                                  create_map(final int  p_initial_count)
    {
    return (p_initial_count > 0) ?
           new HashMap<KeyType, ValueType>(p_initial_count) :
           new HashMap<KeyType, ValueType>();
    }

/**
 * Creates a new set with an optional initial count of free slots.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the set should be created.
 * @param p_initial_count The initial count of free slots.
 *                        If this parameter is <code>0</code>, a resonable
 *                        default will be used.
 * @return  The new <code>Set</code>-instance.
 */

  public  static  final <ItemType> Set<ItemType>
                      create_set(final int  p_initial_count)
    {
    return (p_initial_count > 0) ?
            new HashSet<ItemType>(p_initial_count) :
            new HashSet<ItemType>();
    }


/**
 * Returns an empty, immutable collection interface.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the empty collection should be returned for.
 * @return  The constant empty collection.
 */

  public  static  final <ItemType> Collection<ItemType>
                                          get_empty_collection  ()
    {
    return java.util.Collections.emptyList();
    }

/**
 * Returns an empty, immutable list interface.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the empty list should be returned for.
 * @return  The constant empty list.
 */

  public  static  final <ItemType> List<ItemType>  get_empty_list  ()
    {
    return java.util.Collections.emptyList();
    }

/**
 * Returns an empty, immutable set interface.
 * @param <ItemType>   The parameterized type describing the elements
 *                        the empty set should be returned for.
 * @return  The constant empty set.
 */

  public  static  final <ItemType> Set<ItemType>  get_empty_set  ()
    {
    return java.util.Collections.emptySet();
    }

/**
 * Returns an empty, immutable set interface.
 * @param <KeyType>    The key type for the set to create.
 * @param <ValueType>  The value type for the set to create.
 * @return  The constant empty set.
 */

  public static  final <KeyType, ValueType> Map<KeyType, ValueType>
                                                    get_empty_map  ()
    {
    return java.util.Collections.emptyMap();
    }

/**
 * Create an unmodifiable interface to a collection.
 * @param p_collection  The collection to obtain an unmodifiable interface
 *                      to.
 * @param <ItemType>  The collection's item type.
 * @return  An unmodifiable interface to the collection.
 */

  public  static  final <ItemType>  Collection<ItemType>
      as_unmodifiable_collection  (final Collection<ItemType> p_collection)
    {
    return java.util.Collections.unmodifiableCollection(p_collection);
    }

/**
 * Create an unmodifiable interface to a list.
 * @param p_list      The list to obtain an unmodifiable interface to.
 * @param <ItemType>  The list's item type.
 * @return  An unmodifiable interface to the list.
 */

  public  static  final <ItemType>  List<ItemType>
      as_unmodifiable_list  (final List<ItemType> p_list)
    {
    return java.util.Collections.unmodifiableList(p_list);
    }

/**
 * Create an unmodifiable interface to a set.
 * @param p_set       The set to obtain an unmodifiable interface to.
 * @param <ItemType>  The set's item type.
 * @return  An unmodifiable interface to the set.
 */

  public  static  final <ItemType>  Set<ItemType>
      as_unmodifiable_collection  (final Set<ItemType> p_set)
    {
    return java.util.Collections.unmodifiableSet(p_set);
    }

/**
 * Create an unmodifiable interface to a map.
 * @param p_map The map to obtain an unmodifiable interface  to. *
 * @param <KeyType>    The key type of the map interface.
 * @param <ValueType>  The value type for the map interface.
 * @return  An unmodifiable interface to the collection.
 */

  public  static  final <KeyType, ValueType>  Map<KeyType, ValueType>
      as_unmodifiable_map  (final Map<KeyType, ValueType> p_map)
    {
    return java.util.Collections.unmodifiableMap(p_map);
    }
  
/**
 * The hidden empty iterator class. 
 */

  private static  final class EI  extends IteratorBase<Object>
    {
/**
 * Returns <tt>false</tt>.
 *
 * @return <tt>false</tt>
 */

    public  final boolean hasNext()
      {
      return false;
      }

/**
 * Throws a NoSuchElementException.
 *
 * @return never
 * @exception NoSuchElementException iteration has no more elements.
 */

    public  final Object next()
      {
      throw new NoSuchElementException();
      }
    }
  }

File Information:

file name:Collections.java
package:org.sfc.collections
qualified name:org.sfc.collections.Collections.java
file type:Java Source File
download location:download http://dgpf.sourceforge.net/source/org/sfc/collections/Collections.java
size:9.529 KB (9758 B)
uploaded: 2015-07-22 04:11:11 GMT+0000
last update: 2006-06-14 10:55:55 GMT+0000
last access: 2018-01-23 15:25:06 GMT+0000

statistics online since 2006-01-02.   RSS Feed
Contact us by sending an email to tweise@gmx.de to receive further information, to report errors, or to join our project.
All content on this site (http://dgpf.sourceforge.net/) is LGPL-licensed.
http://dgpf.sourceforge.net/scripts/source/source.php last modified at 2015-07-22 04:10:53 GMT+0000 served at 2018-01-23 15:25:06 GMT+0000.
Valid CSS Valid XHTML 1.1
Valid RSS SourceForge.net Logo