public class JavaAttribute extends AbstractAttribute implements TypedAttribute {
private final Type type;
- private final String nullableDescription, nullableDefault;
+ private final String nullableDescription, nullableDefault, nullableDefaultWrappedForCode;
private final TypeProviderWrapper typeProviderWrapper;
private final TypeDefinition<?> typeDefinition;
this.typeDefinition = leaf.getType();
this.typeProviderWrapper = typeProviderWrapper;
this.nullableDefault = leaf.getDefault();
+ this.nullableDefaultWrappedForCode = leaf.getDefault() == null ? null : typeProviderWrapper.getDefault(leaf);
this.nullableDescription = leaf.getDescription();
}
this.type = typeProviderWrapper.getType(leaf);
this.typeDefinition = leaf.getType();
this.typeProviderWrapper = typeProviderWrapper;
- this.nullableDefault = null;
+ this.nullableDefault = nullableDefaultWrappedForCode = null;
this.nullableDescription = leaf.getDescription();
}
+ public TypeDefinition<?> getTypeDefinition() {
+ return typeDefinition;
+ }
+
/**
* Returns the most base type
*/
return baseType;
}
+ public String getNullableDefaultWrappedForCode() {
+ return nullableDefaultWrappedForCode;
+ }
+
@Override
public Type getType() {
return type;
if (isArray()) {
return getArrayType();
+ } else if (isEnum(baseType)) {
+ return getSimpleType(baseType);
} else if (isDerivedType(baseType)) {
return getCompositeType(baseType, baseTypeDefinition);
}
- return getSimpleType();
+ return getSimpleType(getType());
+ }
+
+ private boolean isEnum(Type baseType) {
+ return baseType.getFullyQualifiedName().equals(Enum.class.getName());
}
- private OpenType<?> getSimpleType() {
- SimpleType<?> simpleType = SimpleTypeResolver.getSimpleType(getType());
+ private OpenType<?> getSimpleType(Type type) {
+ SimpleType<?> simpleType = SimpleTypeResolver.getSimpleType(type);
return simpleType;
}