Version 20.12.0-rc02

Neues in Version 20.12

Tabelleninhalte als CSV speichern

Tabelleninhalte können nun im CSV Format gespeichert werden, um Speicherplatz zu sparen. Dazu wurde das Projekt-Setting tableContentFormat eingeführt. Gültige Werte sind XML und CSV.
Um alle Tabelleninhalte eines Projekts gleichzeitig auf den neuen CSV Typ umzuschreiben, muss die Einstellung tableContentFormat vor dem Anwenden der Migration in der .ipsproject Datei unter AdditionalSettings auf CSV umgestellt werden:

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

Die Migration wird dann alle Tabelleninhalte in das CSV Format übersetzen. Wenn das Format nachträglich geändert wird, müssen die Tabellen zum überschreiben einzeln neu gespeichert werden.

Mehrspaltige Filter im Tabelleneditor

Im Suchfeld des Tabelleneditors können jetzt mit dem Trennzeichen „|“ Suchbegriffe für mehrere Spalten voneinander getrennt werden, so dass wie im Screenshot zu sehen z.B. alle Zeilen gefunden werden, bei denen in einer Spalte der Suchbegriff „200?“ zutrifft, in einer der folgenden Spalten dann „25*“.

Getrennte Validierungsklassen

Um den Umfang der generierten Klassen zu reduzieren und handgeschriebenen Validierungscode besser abzutrennen, ist es nun möglich, auf der Seite „Verhalten“ für einen PolicyCmptType zu definieren, dass dieser getrennte Validierungsklassen erzeugen soll. In den AdditionalSettings der .ipsproject-Konfigurationsdatei kann diese Einstellung für neu angelegte Vertragsklassen vorbelegt werden:

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

Ist die Einstellung für eine Vertragsklasse aktiv, wird z.B. zur Java-Klasse HausratVertrag eine zusätzliche Klasse HausratVertragValidator angelegt, welche dann alle Validierungs- und createMessage-Methoden enthält. In der Vertragsklasse gibt es neue Methoden, um einen solchen Validator zu erzeugen und abzurufen, welche in validateSelf genutzt werden.
Eine Migration findet nicht statt. Handgeschriebener Code muss bei einer Änderung der Einstellung an einer bestehenden Klasse also von Hand übertragen und angepasst werden. Zugriffe auf Attribute/Beziehungen der Vertragsklasse müssen aus den Methoden des Validators heraus um get(). ergänzt werden.

Weniger Kommentare generieren

Manchen Nutzern ist das von Faktor-IPS generierte Javadoc zu „geschwätzig“. Deshalb kann der Codegenerator jetzt angewiesen werden, nur noch das minimal nötige Javadoc zu generieren. Es bleiben dann nur noch @generated&Co, sowie Beschreibungen die im Modell angegeben wurden.

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

Die Default-Einstellung bleibt unverändert. Um das Javadoc weiter zu reduzieren, können im Projekt die Eclipse-Java-Formatter-Einstellungen für Kommentare die Optionen „Entferne leere Zeilen“ aktiviert und „/** and */ on separate lines“ deaktiviert werden.

Bugs

  • Target Role Name = Component Type Name führt zu doppelter Methode in Anpassungsstufe (FIPS-6551)
  • Wertebereich „String Length“ deaktiviert die Option, Wertebereich und Default in Produktkonfiguration festzulegen. (FIPS-6980)
  • Warnung nach Umbenennen einer Produktinstanz inkl. RuntimeId (FIPS-6985)
  • NPE wenn Datentyp im Attribut-Dialog nicht gefunden wird (FIPS-7107)
  • MessageInvalidObjectMatcher matcht nicht richtig (FIPS-7181)
  • Keine Neugenerierung bei Datentypänderung von abgeleiteten Attributen (FIPS-7186)
  • Marker-Auswahl ohne Validation Rule führt zu NPE (FIPS-5625)
  • Enums aus DetachedContentRuntimeRepositories haben keine Werte mehr (FIPS-7227)

New Features

  • Validierungen in eigene Klasse auslagern (FIPS-6659)

Improvements

  • AddIpsNature: Default Einstellungen für generierte XML-Files bei Modellprojekten ändern (FIPS-774)
  • Typo: Edit Table Usage -> Rolename (FIPS-6548)
  • Tabellen als CSV statt XML (FIPS-6656)
  • Weniger Kommentare generieren (FIPS-6657)
  • Fehlermeldung bei bestehendem Parent verbessern (FIPS-6755)
  • file.exists() wo möglich vermeiden (FIPS-6825)
  • Ineffiziente Reflection für IpsSrcFileContent#getPropertyFromIpsObject(String) (FIPS-6830)
  • Target für Eclipse 2020-09 (FIPS-6944)
  • Unnötig scharfe Validierung der Kardinalitäten bei überschriebenen Beziehungen (FIPS-6974)
  • Validierung auf doppelte RuntimeIDs ist ineffizient (FIPS-6831)
  • FIPS-Compare-Editor für Vorlagenbaustein (FIPS-6754)