Variation-1: Builds a class object from given name, primary key and the data. The class is generated from the data. This is equivalent to generating a class from the data.
className: name of the class object
pkAttrName: which attribute is the primary key
data: the data hashmap
Returns
A Map representation of newly created class
Variation-2: Builds a class object from chosen name, table-name, primary key and attributes. This will give you the option to specify the table name different from the class name.
className: name of the class object
tableName: name of the table in the database
pkAttrName: which attribute is the primary key
data: data hashmap
attrTypeByNames: columns types and names
Variation-4: Builds a class object from chosen name, primary key, data and data Types and either create a DB table or just keep in memory. When you pass the data it is the stored only in memory when the skipping is enabled. When it is stored in the database it becomes much more restrictive but where as in the memory it is flexible. You can save this class after modifications and it will not be rejected.
className: name of the class object
tableName: name of the table in the database
pkAttrName: which attribute is the primary key
data: data hashmap
attrTypeByNames: columns types and names
skipSaving: true create the table only in memory