Class SerializablePlugin

java.lang.Object
org.mybatis.generator.api.PluginAdapter
org.mybatis.generator.plugins.SerializablePlugin
All Implemented Interfaces:
Plugin

public class SerializablePlugin extends PluginAdapter
This plugin adds the java.io.Serializable marker interface to all generated model objects.

This plugin demonstrates adding capabilities to generated Java artifacts, and shows the proper way to add imports to a compilation unit.

Important: This is a simplistic implementation of serializable and does not attempt to do any versioning of classes.

Author:
Jeff Butler
  • Constructor Details

    • SerializablePlugin

      public SerializablePlugin()
  • Method Details

    • validate

      public boolean validate(List<String> warnings)
      Description copied from interface: Plugin
      This method is called after all the setXXX methods are called, but before any other method is called. This allows the plugin to determine whether it can run or not. For example, if the plugin requires certain properties to be set, and the properties are not set, then the plugin is invalid and will not run.
      Parameters:
      warnings - add strings to this list to specify warnings. For example, if the plugin is invalid, you should specify why. Warnings are reported to users after the completion of the run.
      Returns:
      true if the plugin is in a valid state. Invalid plugins will not be called
    • setProperties

      public void setProperties(Properties properties)
      Description copied from interface: Plugin
      Set properties from the plugin configuration.
      Specified by:
      setProperties in interface Plugin
      Overrides:
      setProperties in class PluginAdapter
      Parameters:
      properties - the new properties
    • modelBaseRecordClassGenerated

      public boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the base record class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a base record class.

      This method is only guaranteed to be called by the default Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated base record class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • modelPrimaryKeyClassGenerated

      public boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the primary key class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a primary key class.

      This method is only guaranteed to be called by the Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated primary key class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • modelRecordWithBLOBsClassGenerated

      public boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
      Description copied from interface: Plugin
      This method is called after the record with BLOBs class is generated by the JavaModelGenerator. This method will only be called if the table rules call for generation of a record with BLOBs class.

      This method is only guaranteed to be called by the default Java model generators. Other user supplied generators may, or may not, call this method.
      Parameters:
      topLevelClass - the generated record with BLOBs class
      introspectedTable - The class containing information about the table as introspected from the database
      Returns:
      true if the class should be generated, false if the generated class should be ignored. In the case of multiple plugins, the first plugin returning false will disable the calling of further plugins.
    • makeSerializable

      protected void makeSerializable(TopLevelClass topLevelClass, IntrospectedTable introspectedTable)
    • kotlinDataClassGenerated

      public boolean kotlinDataClassGenerated(KotlinFile kotlinFile, KotlinType dataClass, IntrospectedTable introspectedTable)