- protected AttributeReadingStrategy caseJavaAttribute(JavaAttribute attributeIfc) {
- if (attributeIfc.getOpenType() instanceof SimpleType<?>)
- return new SimpleAttributeReadingStrategy(attributeIfc);
- else if (attributeIfc.getOpenType() instanceof ArrayType<?>) {
- SimpleAttributeReadingStrategy innerStrategy = new SimpleAttributeReadingStrategy(
- ((ArrayType<?>) attributeIfc.getOpenType()).getElementOpenType());
- return new ArrayAttributeReadingStrategy(attributeIfc, innerStrategy);
- }
- throw new IllegalStateException(JavaAttribute.class + " can only provide open type " + SimpleType.class
- + " or " + ArrayType.class);
+ public AttributeReadingStrategy caseJavaSimpleAttribute(SimpleType<?> openType) {
+ return new SimpleAttributeReadingStrategy(lastAttribute.getNullableDefault());
+ }
+
+ @Override
+ public AttributeReadingStrategy caseJavaArrayAttribute(ArrayType<?> openType) {
+ SimpleAttributeReadingStrategy innerStrategy = new SimpleAttributeReadingStrategy(lastAttribute.getNullableDefault());
+ return new ArrayAttributeReadingStrategy(lastAttribute.getNullableDefault(), innerStrategy);