/* * File: DefaultClusterCreator.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright February 22, 2006, Sandia Corporation. * Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive * license for use of this work by or on behalf of the U.S. Government. Export * of this program may require a license from the United States Government. * See CopyrightHistory.txt for complete details. * */ package gov.sandia.cognition.learning.algorithm.clustering.cluster; import gov.sandia.cognition.util.AbstractCloneableSerializable; import java.util.Collection; /** * The {@code DefaultClusterCreator} class implements a default * {@code ClusterCreator} that just creates a {@code DefaultCluster} from the * given list of members. * * @param <DataType> The type of the data to put in the cluster. * @author Justin Basilico * @since 2.1 */ public class DefaultClusterCreator<DataType> extends AbstractCloneableSerializable implements ClusterCreator<DefaultCluster<DataType>, DataType> { /** * Creates a new {@code DefaultClusterCreator}. */ public DefaultClusterCreator() { super(); } /** * Creates a new {@code DefaultCluster} from the given list of members. * * @param members The cluster members. * @return A new cluster from the given members. */ public DefaultCluster<DataType> createCluster( final Collection<? extends DataType> members) { if (members == null) { // Error: Members is null. throw new NullPointerException("The members cannot be null."); } else if (members.size() <= 0) { // No members to create the cluster from. return new DefaultCluster<DataType>(); } else { // Create a cluster from the given members. return new DefaultCluster<DataType>(members); } } }