441 private static String buildArrayDescription(int dimension,
442 OpenType<?> elementType)
443 throws OpenDataException {
444 boolean isPrimitiveArray = false;
445 if (elementType.isArray()) {
446 isPrimitiveArray = ((ArrayType<?>) elementType).isPrimitiveArray();
447 }
448 return buildArrayDescription(dimension, elementType, isPrimitiveArray);
449 }
450
451 private static String buildArrayDescription(int dimension,
452 OpenType<?> elementType,
453 boolean isPrimitiveArray)
454 throws OpenDataException {
455 if (elementType.isArray()) {
456 ArrayType<?> at = (ArrayType<?>) elementType;
457 dimension += at.getDimension();
458 elementType = at.getElementOpenType();
459 isPrimitiveArray = at.isPrimitiveArray();
460 }
461 StringBuilder result =
462 new StringBuilder(dimension + "-dimension array of ");
463 final String elementClassName = elementType.getClassName();
464 if (isPrimitiveArray) {
465 // Convert from wrapper type to primitive type
466 final String primitiveType =
467 getPrimitiveTypeName(elementClassName);
468
469 // Ideally we should throw an IllegalArgumentException here,
470 // but for compatibility reasons we throw an OpenDataException.
471 // (used to be thrown by OpenType() constructor).
472 //
473 if (primitiveType == null)
474 throw new OpenDataException("Element is not a primitive type: "+
475 elementClassName);
476 result.append(primitiveType);
477 } else {
478 result.append(elementClassName);
479 }
480 return result.toString();
481 }
482
|
441 private static String buildArrayDescription(int dimension,
442 OpenType<?> elementType)
443 throws OpenDataException {
444 boolean isPrimitiveArray = false;
445 if (elementType.isArray()) {
446 isPrimitiveArray = ((ArrayType<?>) elementType).isPrimitiveArray();
447 }
448 return buildArrayDescription(dimension, elementType, isPrimitiveArray);
449 }
450
451 private static String buildArrayDescription(int dimension,
452 OpenType<?> elementType,
453 boolean isPrimitiveArray)
454 throws OpenDataException {
455 if (elementType.isArray()) {
456 ArrayType<?> at = (ArrayType<?>) elementType;
457 dimension += at.getDimension();
458 elementType = at.getElementOpenType();
459 isPrimitiveArray = at.isPrimitiveArray();
460 }
461 StringBuilder result = new StringBuilder();
462 result.append(dimension).append("-dimension array of ");
463 final String elementClassName = elementType.getClassName();
464 if (isPrimitiveArray) {
465 // Convert from wrapper type to primitive type
466 final String primitiveType =
467 getPrimitiveTypeName(elementClassName);
468
469 // Ideally we should throw an IllegalArgumentException here,
470 // but for compatibility reasons we throw an OpenDataException.
471 // (used to be thrown by OpenType() constructor).
472 //
473 if (primitiveType == null)
474 throw new OpenDataException("Element is not a primitive type: "+
475 elementClassName);
476 result.append(primitiveType);
477 } else {
478 result.append(elementClassName);
479 }
480 return result.toString();
481 }
482
|