public IFCAnnotation(AnnotationType type, String level, SDGProgramPart annotatedPart) {
this(type, level, annotatedPart, null);
</BUG>
}
<BUG>public IFCAnnotation(AnnotationType type, String level, SDGProgramPart annotatedPart, SDGMethod context) {
</BUG>
if (type == AnnotationType.DECLASS || type == null || level == null || annotatedPart == null) {
throw new IllegalArgumentException();
}
this.type = type;

public IFCAnnotation(AnnotationType type, String level, SDGProgramPart annotatedPart) {
this(type, level, annotatedPart, null, UnknownCause.INSTANCE);
}
public IFCAnnotation(AnnotationType type, String level, SDGProgramPart annotatedPart, SDGMethod context, AnnotationCause cause) {
if (type == AnnotationType.DECLASS || type == null || level == null || annotatedPart == null) {
throw new IllegalArgumentException();
}
this.type = type;
