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`

@KFStep(category="DataSinks", toolTipText="Save a batch or incremental model to file") public class SerializedModelSaver extends JPanel implements BeanCommon, Visible, BatchClassifierListener, IncrementalClassifierListener, BatchClustererListener, EnvironmentHandler, Serializable
A bean that saves serialized models

Version:
  $Revision: 15231 $
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.
  `boolean`
  `getIncludeRelationName()`
  Get whether the relation name of the training data used to create the model is to be included in the filename of the serialized model.
  `int`
  `getIncrementalSaveSchedule()`
  Get how often to save incremental models.
  `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`
  `setIncludeRelationName(boolean rn)`
  Set whether the relation name of the training data used to create the model should be included as part of the filename for the serialized model.
  `void`
  `setIncrementalSaveSchedule(int s)`
  Set how often to save incremental models.
  `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

  - ### setIncludeRelationName

    public void setIncludeRelationName(boolean rn)
    Set whether the relation name of the training data used to create the model should be included as part of the filename for the serialized model.
    Parameters:
      `rn` - true if the relation name should be included in the file name

  - ### getIncludeRelationName

    public boolean getIncludeRelationName()
    Get whether the relation name of the training data used to create the model is to be included in the filename of the serialized model.
    Returns:
      true if the relation name is to be included in the file name

  - ### 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

  - ### setIncrementalSaveSchedule

    public void setIncrementalSaveSchedule(int s)
    Set how often to save incremental models. <= 0 means only at the end of the stream
    Parameters:
      `s` - how often to save (after every s instances)

  - ### getIncrementalSaveSchedule

    public int getIncrementalSaveSchedule()
    Get how often to save incremental models. <= 0 means only at the end of the stream
    Returns:
      how often to save (after every s instances)

  - ### 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