Version 20.12.0-rc02

New and Noteworthy in Version 20.12

Table content as CSV

Table contents may now be saved in CSV format to minimize filesize. A new project-setting tableContentFormat has been added that accepts the values XML and CSV.
If you wish to convert all tables to the new CSV format simultaneously, make sure to add the setting tableContentFormat to the .ipsproject file in the section AdditionalSettings before running a migration on the project:

<Setting name="tableContentFormat" value="CSV"/>

If you do, the migration will convert all table content files into the CSV format. If you decide to change the format after migrating, every table will need to be saved individually instead.

Multi-Column-Filters in Table Editors

In the table editor’s search field, search terms for multiple columns can now be separated by the “|” character. You can for example search for a column matching “200?” followed by a column matching “25*” as shown in the screenshot.

Separate Validator Classes

To reduce the size of generated classes and better separate handwritten validation code, you can now set the “Create separate validator class” on the “Behavior” page of a PolicyCmptType. In the AdditionalSettings part of the configuration file .ipsproject you can select a preset for newly created policy classes:

<Setting name="generateValidatorClassDefault" value="true"/>

If the setting is active for a policy component class, for example “HomeContract”, a separate validator class (“HomeContractValidator”) is generated, which includes all validation and createMessage~ methods. In the policy component class, new methods for the creation and access of that validator are created and used in the validateSelf method.
There is no migration of handwritten code upon changes to the setting on existing classes, so handwritten code has to be manually copied to the validator and adapted to use “get().” to access the attributes and associations of the policy class.

Generating less Javadoc

Some users thought the Javadoc generated by Faktor-IPS was a little too much. That’s why the code generator can now be set to generate only minimal amounts of Javadoc. Only @generated&Co as well as descriptions added to the model will remain.

<Setting name="minimalJavadoc" value="true"/>

The default setting remains unchanged. To further reduce Javadoc, it is possible to activate the setting “remove blank lines” an deactivate “/** and */ on separate lines” in the Eclipse Java formatter settings for comments.

Bugs

  • Target Role Name = Component Type Name leads to duplicate method in generation (FIPS-6551)
  • Value set “String Length” deactivates configuration of value set and default in product configuration (FIPS-6980)
  • Warning after a product component was renamed including change its runtime ID (FIPS-6985)
  • NPE when a data type is not found in the attribute dialog (FIPS-7107)
  • MessageInvalidObjectMatcher does not match correctly (FIPS-7181)
  • Derived attributes not generated again after change of data type (FIPS-7186)
  • Marker selection without validation rule creates NPE (FIPS-5625)
  • Enums from DetachedContentRuntimeRepositories don’t have any values (FIPS-7227)

New Features

  • Generate validation code in a separate class (FIPS-6659)

Improvements

  • AddIpsNature: default settings for generated XML files for model projects (FIPS-774)
  • Typo: Edit Table Usage -> Rolename (FIPS-6548)
  • Tables as CSV instead of XML (FIPS-6656)
  • Generate less comments (FIPS-6657)
  • Improve error message for existing parent (FIPS-6755)
  • avoid file.exists() where possible (FIPS-6825)
  • Inefficient reflection for IpsSrcFileContent#getPropertyFromIpsObject(String) (FIPS-6830)
  • Target for Eclipse 2020-09 (FIPS-6944)
  • Unneccesarily hard validiation of cardinalities of overwritten associations (FIPS-6974)
  • Validation of duplicate runtime IDs is inefficient (FIPS-6831)
  • FIPS-Compare-Editor for Templates (FIPS-6754)