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:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, EnvironmentHandler, BatchClassifierListener, BatchClustererListener, BeanCommon, IncrementalClassifierListener, Visible

      @KFStep(category="DataSinks",
              toolTipText="Save a batch or incremental model to file")
      public class SerializedModelSaver
      extends javax.swing.JPanel
      implements BeanCommon, Visible, BatchClassifierListener, IncrementalClassifierListener, BatchClustererListener, EnvironmentHandler, java.io.Serializable

  A bean that saves serialized models
  Version:
    $Revision: 11077 $
  Author:
    Mark Hall (mhall{[at]}pentaho{[dot]}org
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `javax.swing.JComponent.AccessibleJComponent`

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

      `java.awt.Component.BaselineResizeBehavior`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static int` | `BINARY`
    `static java.lang.String` | `FILE_EXTENSION` the extension for serialized models (binary Java serialization)
    `static int` | `KOMLV`
    `static java.util.ArrayList<Tag>` | `s_fileFormatsAvailable` Available file formats.
    `static 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 and Description
    `SerializedModelSaver()` Constructor.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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(java.beans.EventSetDescriptor esd)` Returns true if, at this time, the object will accept a connection according to the supplied EventSetDescriptor.
    `boolean` | `connectionAllowed(java.lang.String eventName)` Returns true if, at this time, the object will accept a connection according to the supplied event name.
    `void` | `connectionNotification(java.lang.String eventName, java.lang.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(java.lang.String eventName, java.lang.Object source)` Notify this object that it has been deregistered as a listener with a source with respect to the supplied event name.
    `java.lang.String` | `getCustomName()` Get the custom (descriptive) name for this bean (if one has been set)
    `java.io.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.
    `java.lang.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.
    `java.lang.String` | `globalInfo()` Global info for this bean.
    `boolean` | `isBusy()` Returns true if.
    `static void` | `saveBinary(java.io.File saveTo, java.lang.Object model, Instances header)` Save a model in binary form.
    `static void` | `saveKOML(java.io.File saveTo, java.lang.Object model, Instances header)` Save a model in KOML deep object serialized XML form.
    `static void` | `saveXStream(java.io.File saveTo, java.lang.Object model, Instances header)` Save a model in XStream deep object serialized XML form.
    `void` | `setCustomName(java.lang.String name)` Set a custom (descriptive) name for this bean
    `void` | `setDirectory(java.io.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(java.lang.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, getPeer, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, 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 Detail

    - #### 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 java.lang.String FILE_EXTENSION

      the extension for serialized models (binary Java serialization)
      See Also:
        Constant Field Values

    - #### s_fileFormatsAvailable

          public static java.util.ArrayList<Tag> s_fileFormatsAvailable

      Available file formats. Reflection is used to check if classes are available for deep object serialization to XML

  - ### Constructor Detail

    - #### SerializedModelSaver

          public SerializedModelSaver()

      Constructor.

  - ### Method Detail

    - #### setCustomName

          public void setCustomName(java.lang.String name)

      Set a custom (descriptive) name for this bean
      Specified by:
        `setCustomName` in interface `BeanCommon`
      Parameters:
        `name` - the name to use

    - #### getCustomName

          public java.lang.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(java.beans.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(java.lang.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(java.lang.String eventName,
                                             java.lang.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(java.lang.String eventName,
                                                java.lang.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(java.io.File saveTo,
                                        java.lang.Object model,
                                        Instances header)
                                 throws java.io.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:
        `java.io.IOException`

    - #### saveKOML

          public static void saveKOML(java.io.File saveTo,
                                      java.lang.Object model,
                                      Instances header)
                               throws java.lang.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:
        `java.lang.Exception`

    - #### saveXStream

          public static void saveXStream(java.io.File saveTo,
                                         java.lang.Object model,
                                         Instances header)
                                  throws java.lang.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:
        `java.lang.Exception`

    - #### getDirectory

          public java.io.File getDirectory()

      Get the directory that the model(s) will be saved into
      Returns:
        the directory to save to

    - #### setDirectory

          public void setDirectory(java.io.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 java.lang.String getPrefix()

      Get the prefix to prepend to the model file names.
      Returns:
        the prefix to prepend

    - #### setPrefix

          public void setPrefix(java.lang.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 java.lang.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