public class Model extends Object
Encapsulates a set of Kernels
. A ModelApplication
can be used to combine a Model with data to perform inference or learn.
Objects which use a Model should register with it to listen
for ModelEvents
.
Modifier and Type | Field and Description |
---|---|
protected List<Kernel> |
kernels |
protected Set<Kernel> |
kernelSet
Redundant set for fast membership checks
|
protected Set<ModelEvent.Listener> |
modelObservers |
Constructor and Description |
---|
Model()
Sole constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addKernel(Kernel k)
Adds a Kernel to this Model.
|
protected void |
broadcastModelEvent(ModelEvent event) |
Iterable<Kernel> |
getKernels() |
void |
notifyKernelParametersModified(Kernel k)
Notifies this Model that a Kernel's parameters were modified.
|
void |
registerModelObserver(ModelEvent.Listener observer)
Registers an observer to receive
ModelEvents . |
void |
removeKernel(Kernel k)
Removes a Kernel from this Model.
|
String |
toString()
Returns a String representation of this Model.
|
void |
unregisterModelObserver(ModelEvent.Listener observer)
Unregisters an observer so it will no longer receive
ModelEvents
from this model. |
protected final Set<ModelEvent.Listener> modelObservers
public void registerModelObserver(ModelEvent.Listener observer)
ModelEvents
.observer
- object to notify of eventspublic void unregisterModelObserver(ModelEvent.Listener observer)
ModelEvents
from this model.observer
- object to stop notifyingpublic void addKernel(Kernel k)
All observers of this Model will receive a ModelEvent#KernelAdded
event.
k
- Kernel to addIllegalArgumentException
- if the Kernel is already in this Modelpublic void removeKernel(Kernel k)
All observers of this Model will receive a ModelEvent#KernelRemoved
event.
k
- Kernel to removeIllegalArgumentException
- if the Kernel is not in this Modelpublic void notifyKernelParametersModified(Kernel k)
All observers of this model will receive a ModelEvent#KernelParametersModified
event.
k
- the Kernel that was modifiedIllegalArgumentException
- if the Kernel is not in this Modelpublic String toString()
The String will start with "Model:", followed by a newline, then the String representations of each Kernel in this Model (each followed by a newline). Constraint Kernels will come before compatibility kernels.
protected void broadcastModelEvent(ModelEvent event)