Outline outline,
XSType xsType,
boolean isElement,
XmlString xmlDefaultValue
) {
JType type = f.getRawType();
String typeName = type.fullName();
String defaultValue = xmlDefaultValue.value;
JExpression dv = null;
if ("java.lang.Boolean".equals(typeName) && isElement) {
dv = JExpr.direct(Boolean.valueOf(defaultValue) ? "Boolean.TRUE" : "Boolean.FALSE");
} else if ("java.lang.Byte".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.cast(type.unboxify(),
JExpr.lit(new Byte(Short.valueOf(defaultValue).byteValue()))));
} else if ("java.lang.Double".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.lit(new Double(Double.valueOf(defaultValue).doubleValue())));
} else if ("java.lang.Float".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.lit(new Float(Float.valueOf(defaultValue).floatValue())));
} else if ("java.lang.Integer".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.lit(new Integer(Integer.valueOf(defaultValue).intValue())));
} else if ("java.lang.Long".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.lit(new Long(Long.valueOf(defaultValue).longValue())));
} else if ("java.lang.Short".equals(typeName) && isElement) {
dv = JExpr._new(type)
.arg(JExpr.cast(type.unboxify(),
JExpr.lit(new Short(Short.valueOf(defaultValue).shortValue()))));
} else if ("java.lang.String".equals(type.fullName()) && isElement) {
dv = JExpr.lit(defaultValue);
} else if ("java.math.BigInteger".equals(type.fullName()) && isElement) {
dv = JExpr._new(type).arg(JExpr.lit(defaultValue));
} else if ("java.math.BigDecimal".equals(type.fullName()) && isElement) {
dv = JExpr._new(type).arg(JExpr.lit(defaultValue));
} else if ("byte[]".equals(type.fullName()) && xsType.isSimpleType() && isElement) {
while (!"anySimpleType".equals(xsType.getBaseType().getName())) {
xsType = xsType.getBaseType();
}
if ("base64Binary".equals(xsType.getName())) {
dv = outline.getCodeModel().ref(DatatypeConverter.class)