DfReferenceType (TypeConstraints.@NotNull TypeConstraintFactory factory) { TypeConstraint newConstraint = myConstraint.convert(factory); DfType newSpecialFieldType = (mySpecialFieldType instanceof DfReferenceType refType) ? refType.convert(factory) : mySpecialFieldType; return new DfGenericObjectType(myNotValues, newConstraint, myNullability, myMutability, mySpecialField, newSpecialFieldType, myLocal); }