gov.sandia.cognition.framework.CognitiveModuleFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cognitive-foundry Show documentation
Show all versions of cognitive-foundry Show documentation
A single jar with all the Cognitive Foundry components.
/*
* File: CognitiveModuleFactory.java
* Authors: Justin Basilico and Kevin R. Dixon
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright February 24, 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.framework;
import java.io.Serializable;
/**
* The CognitiveModuleFactory interface defines the functionality required by
* something that creates new CognitiveModules for a CognitiveModel. A
* CognitiveModel does not accept CognitiveModule objects to be given to it,
* instead it only will accept a CognitiveModuleFactory to be given to it from
* which it can create a new CognitiveModule for itself. The reason that this
* is used is so that CognitiveModules can contain information about the
* CognitiveModels that they belong to and to ensure that the same
* CognitiveModule is not being shared between models. Note, however, that a
* factory can provide modules that share some model-independent components of
* their state in order to conserve memory.
*
* @author Justin Basilico
* @author Kevin R. Dixon
* @author Zachary Benz
* @since 1.0
* @see CognitiveModule
*/
public interface CognitiveModuleFactory
extends Serializable
{
/**
* Creates a new CognitiveModule for the given CognitiveModel.
*
* @param model The model to create a new module for
* @return A new CognitiveModule for the given model
*/
public CognitiveModule createModule(
CognitiveModel model);
}