Package weka.gui.beans

# Class SerializedModelSaver

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
weka.gui.beans.SerializedModelSaver

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `EventListener`, `Accessible`, `EnvironmentHandler`, `BatchClassifierListener`, `BatchClustererListener`, `BeanCommon`, `IncrementalClassifierListener`, `Visible`

public class SerializedModelSaver extends JPanel implements BeanCommon, Visible, BatchClassifierListener, IncrementalClassifierListener, BatchClustererListener, EnvironmentHandler, Serializable
A bean that saves serialized models

Version:
  $Revision: 10534 $
Author:
  Mark Hall (mhall{[at]}pentaho{[dot]}org
See Also:
  - Serialized Form

## Nested Class Summary

## Nested classes/interfaces inherited from class javax.swing.JComponent

`JComponent.AccessibleJComponent`

## Nested classes/interfaces inherited from class java.awt.Component

`Component.BaselineResizeBehavior`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`BINARY`
`static final String`
`FILE_EXTENSION`
the extension for serialized models (binary Java serialization)
`static final int`
`KOMLV`
`static ArrayList<Tag>`
`s_fileFormatsAvailable`
Available file formats.
`static final int`
`XSTREAM`

### Fields inherited from class javax.swing.JComponent

`TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

### Fields inherited from class java.awt.Component

`BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

### Fields inherited from interface java.awt.image.ImageObserver

`ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

## Constructor Summary

Constructors
Constructor
Description
`SerializedModelSaver()`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptClassifier(BatchClassifierEvent ce)`
Accept and save a batch trained classifier.
`void`
`acceptClassifier(IncrementalClassifierEvent ce)`
Accept and save an incrementally trained classifier.
`void`
`acceptClusterer(BatchClustererEvent ce)`
Accept and save a batch trained clusterer.
`boolean`
`connectionAllowed(EventSetDescriptor esd)`
Returns true if, at this time, the object will accept a connection according to the supplied EventSetDescriptor.
`boolean`
`connectionAllowed(String eventName)`
Returns true if, at this time, the object will accept a connection according to the supplied event name.
`void`
`connectionNotification(String eventName, Object source)`
Notify this object that it has been registered as a listener with a source with respect to the supplied event name.
`void`
`disconnectionNotification(String eventName, Object source)`
Notify this object that it has been deregistered as a listener with a source with respect to the supplied event name.
`String`
`getCustomName()`
Get the custom (descriptive) name for this bean (if one has been set)
`File`
`getDirectory()`
Get the directory that the model(s) will be saved into
`Tag`
`getFileFormat()`
Get the file format to use for saving.
`String`
`getPrefix()`
Get the prefix to prepend to the model file names.
`boolean`
`getUseRelativePath()`
Get whether to use relative paths for the directory.
`BeanVisual`
`getVisual()`
Get the visual being used by this data source.
`String`
`globalInfo()`
Global info for this bean.
`boolean`
`isBusy()`
Returns true if.
`static void`
`saveBinary(File saveTo, Object model, Instances header)`
Save a model in binary form.
`static void`
`saveKOML(File saveTo, Object model, Instances header)`
Save a model in KOML deep object serialized XML form.
`static void`
`saveXStream(File saveTo, Object model, Instances header)`
Save a model in XStream deep object serialized XML form.
`void`
`setCustomName(String name)`
Set a custom (descriptive) name for this bean
`void`
`setDirectory(File d)`
Set the directory that the model(s) will be saved into.
`void`
`setEnvironment(Environment env)`
Set environment variables to use.
`void`
`setFileFormat(Tag ff)`
Set the file format to use for saving.
`void`
`setLog(Logger logger)`
Set a log for this bean.
`void`
`setPrefix(String p)`
Set the prefix to prepend to the model file names.
`void`
`setUseRelativePath(boolean rp)`
Set whether to use relative paths for the directory.
`void`
`setVisual(BeanVisual newVisual)`
Set the visual for this data source.
`void`
`stop()`
Stop any processing that the bean might be doing.
`void`
`useDefaultVisual()`
Use the default images for this bean.
`Tag`
`validateFileFormat(Tag ff)`
Validate the file format.

### Methods inherited from class javax.swing.JPanel

`getAccessibleContext, getUI, getUIClassID, setUI, updateUI`

### Methods inherited from class javax.swing.JComponent

`addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

### Methods inherited from class java.awt.Container

`add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate`

### Methods inherited from class java.awt.Component

`action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### BINARY

public static final int BINARY

See Also:
  - Constant Field Values

### KOMLV

public static final int KOMLV

See Also:
  - Constant Field Values

### XSTREAM

public static final int XSTREAM

See Also:
  - Constant Field Values

### FILE_EXTENSION

public static final String FILE_EXTENSION
the extension for serialized models (binary Java serialization)

See Also:
  - Constant Field Values

### s_fileFormatsAvailable

public static ArrayList<Tag> s_fileFormatsAvailable
Available file formats. Reflection is used to check if classes are available for deep object serialization to XML

## Constructor Details

### SerializedModelSaver

public SerializedModelSaver()
Constructor.

## Method Details

### setCustomName

public void setCustomName(String name)
Set a custom (descriptive) name for this bean

Specified by:
  `setCustomName` in interface `BeanCommon`
Parameters:
  `name` - the name to use

### getCustomName

public String getCustomName()
Get the custom (descriptive) name for this bean (if one has been set)

Specified by:
  `getCustomName` in interface `BeanCommon`
Returns:
  the custom name (or the default name)

### useDefaultVisual

public void useDefaultVisual()
Use the default images for this bean.

Specified by:
  `useDefaultVisual` in interface `Visible`

### setVisual

public void setVisual(BeanVisual newVisual)
Set the visual for this data source.

Specified by:
  `setVisual` in interface `Visible`
Parameters:
  `newVisual` - a `BeanVisual` value

### getVisual

public BeanVisual getVisual()
Get the visual being used by this data source.

Specified by:
  `getVisual` in interface `Visible`
Returns:
  a `BeanVisual` value

### connectionAllowed

public boolean connectionAllowed(EventSetDescriptor esd)
Returns true if, at this time, the object will accept a connection according to the supplied EventSetDescriptor.

Specified by:
  `connectionAllowed` in interface `BeanCommon`
Parameters:
  `esd` - the EventSetDescriptor
Returns:
  true if the object will accept a connection

### connectionAllowed

public boolean connectionAllowed(String eventName)
Returns true if, at this time, the object will accept a connection according to the supplied event name.

Specified by:
  `connectionAllowed` in interface `BeanCommon`
Parameters:
  `eventName` - the event
Returns:
  true if the object will accept a connection

### connectionNotification

public void connectionNotification(String eventName, Object source)
Notify this object that it has been registered as a listener with a source with respect to the supplied event name.

Specified by:
  `connectionNotification` in interface `BeanCommon`
Parameters:
  `eventName` - the event
  `source` - the source with which this object has been registered as a listener

### disconnectionNotification

public void disconnectionNotification(String eventName, Object source)
Notify this object that it has been deregistered as a listener with a source with respect to the supplied event name.

Specified by:
  `disconnectionNotification` in interface `BeanCommon`
Parameters:
  `eventName` - the event
  `source` - the source with which this object has been registered as a listener

### setLog

public void setLog(Logger logger)
Set a log for this bean.

Specified by:
  `setLog` in interface `BeanCommon`
Parameters:
  `logger` - a `weka.gui.Logger` value

### stop

public void stop()
Stop any processing that the bean might be doing.

Specified by:
  `stop` in interface `BeanCommon`

### isBusy

public boolean isBusy()
Returns true if. at this time, the bean is busy with some (i.e. perhaps a worker thread is performing some calculation).

Specified by:
  `isBusy` in interface `BeanCommon`
Returns:
  true if the bean is busy.

### acceptClusterer

public void acceptClusterer(BatchClustererEvent ce)
Accept and save a batch trained clusterer.

Specified by:
  `acceptClusterer` in interface `BatchClustererListener`
Parameters:
  `ce` - a `BatchClassifierEvent` value

### acceptClassifier

public void acceptClassifier(IncrementalClassifierEvent ce)
Accept and save an incrementally trained classifier.

Specified by:
  `acceptClassifier` in interface `IncrementalClassifierListener`
Parameters:
  `ce` - the BatchClassifierEvent containing the classifier

### acceptClassifier

public void acceptClassifier(BatchClassifierEvent ce)
Accept and save a batch trained classifier.

Specified by:
  `acceptClassifier` in interface `BatchClassifierListener`
Parameters:
  `ce` - the BatchClassifierEvent containing the classifier

### saveBinary

public static void saveBinary(File saveTo, Object model, Instances header) throws IOException
Save a model in binary form.

Parameters:
  `saveTo` - the file name to save to
  `model` - the model to save
  `header` - the header of the data that was used to train the model (optional)
Throws:
  `IOException`

### saveKOML

public static void saveKOML(File saveTo, Object model, Instances header) throws Exception
Save a model in KOML deep object serialized XML form.

Parameters:
  `saveTo` - the file name to save to
  `model` - the model to save
  `header` - the header of the data that was used to train the model (optional)
Throws:
  `Exception`

### saveXStream

public static void saveXStream(File saveTo, Object model, Instances header) throws Exception
Save a model in XStream deep object serialized XML form.

Parameters:
  `saveTo` - the file name to save to
  `model` - the model to save
  `header` - the header of the data that was used to train the model (optional)
Throws:
  `Exception`

### getDirectory

public File getDirectory()
Get the directory that the model(s) will be saved into

Returns:
  the directory to save to

### setDirectory

public void setDirectory(File d)
Set the directory that the model(s) will be saved into.

Parameters:
  `d` - the directory to save to

### setUseRelativePath

public void setUseRelativePath(boolean rp)
Set whether to use relative paths for the directory. I.e. relative to the startup (user.dir) directory

Parameters:
  `rp` - true if relative paths are to be used

### getUseRelativePath

public boolean getUseRelativePath()
Get whether to use relative paths for the directory. I.e. relative to the startup (user.dir) directory

Returns:
  true if relative paths are to be used

### getPrefix

public String getPrefix()
Get the prefix to prepend to the model file names.

Returns:
  the prefix to prepend

### setPrefix

public void setPrefix(String p)
Set the prefix to prepend to the model file names.

Parameters:
  `p` - the prefix to prepend

### globalInfo

public String globalInfo()
Global info for this bean. Gets displayed in the GUI.

Returns:
  information about this bean.

### setFileFormat

public void setFileFormat(Tag ff)
Set the file format to use for saving.

Parameters:
  `ff` - the file format to use

### getFileFormat

public Tag getFileFormat()
Get the file format to use for saving.

Returns:
  the file format to use

### validateFileFormat

public Tag validateFileFormat(Tag ff)
Validate the file format. After this bean is deserialized, classes for XML serialization may not be in the classpath any more.

Parameters:
  `ff` - the current file format to validate

### setEnvironment

public void setEnvironment(Environment env)
Set environment variables to use.

Specified by:
  `setEnvironment` in interface `EnvironmentHandler`
Parameters:
  `env` - the environment variables to use