Generatoroptionen

Annotations

Es gibt mehrere Generatoroptionen, die die Generierung von Annotations am generierten Code steuern. Wie im Kapitel Manuelle Anpassungen des generierten Codes beschrieben wird an allen von Faktor-IPS generierten Elementen das Javadoc-Tag @generated oder @restrainedmodifiable generiert. Sollen generierte Methoden zusätzlich auch über Annotations markiert werden, um sie z.B. von der Überprüfung durch Code-Quality-Tools auszunehmen, wird die Option additionalAnnotations genutzt, z.B.

   <Property name="additionalAnnotations" value="org.faktorips.runtime.annotation.IpsGenerated"/>

Damit wird im generierten Javacode import org.faktorips.runtime.annotation.IpsGenerated und an jeder generierten Methode @IpsGenerated generiert.

Mehrere Annotations können durch Strichpunkt getrennt werden:

   <Property name="additionalAnnotations" value="org.faktorips.runtime.annotation.IpsGenerated;edu.umd.cs.findbugs.annotations.SuppressFBWarnings"/>

Sollen die Annotations nur an mit @generated markierten Methoden generiert werden, nicht aber an solchen mit @restrainedmodifiable - die potentiell handgeschriebenen Code beinhalten können, welcher z.B. bei der Prüfung auf Codeabdeckung durch Testfälle mit betrachtet werden soll - kann dies über folgende Einstellung erreicht werden:

   <Property name="additionalAnnotationsLocation" value="OnlyGenerated"/>

Werden dagegen öfter Annotations von Hand hinzugefügt ist es mühsam, jedes Mal @customizedAnnotations ADDED zu verwenden. Häufig verwendete Annotations können mit der Option retainAnnotations vom automatischen Entfernen aus dem generierten Code ausgenommen werden. Beispielsweise kann die @Override-Annotation verbleiben, wenn Interfaces Methoden definieren, die im generierten Code enthalten sind.

   <Property name="retainAnnotations" value="Override"/>