<%if (UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature) != genFeature.getTypeGenClassifier()) {%>
		if (new<%=genFeature.getCapName()%> != null && !(new<%=genFeature.getCapName()%> instanceof <%=UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName()%>))
		{
			throw new IllegalArgumentException("new<%=genFeature.getCapName()%> must be an instance of <%=UML2GenModelUtil.getRedefinitionTypeGenClassifier(genFeature).getRawImportedInstanceClassName()%>");<%=genModel.getNonNLS()%>
		}
<%}%>
<%if (genFeature.isStringType() && UML2GenModelUtil.isSafeStrings(genModel)) {%>
		new<%=genFeature.getCapName()%> = new<%=genFeature.getCapName()%> == null ? <%=genFeature.getEDefault()%> : new<%=genFeature.getCapName()%>;
<%}%>