Datatype mappings

The EJB Proxy generator maps datatypes between Java and PowerBuilder as shown in the following table:

Java type

PowerBuilder type

short

Integer

int

Long

long

LongLong

float

Real

double

Double

byte

Int

char (16-bit unsigned)

Char

java.lang.String

String

boolean

Boolean

java.util.Date

Datetime

Array of primitive type

Parameters: Array of primitive type Return values: Any

Array of java.lang.String or java.util.Date objects

Parameters: Array of String or DateTime Return values: Any

Array of arrays

Any

Java class arguments or return values

PowerBuilder proxies of Java classes

Other

Any

Different precision for double

A PowerBuilder double has 15 digits of precision (1.79769313486231E+308) and a Java double has 17 digits (1.7976931348623157e+308). For EJB client applications, the precision of a double is limited to the PowerBuilder range (2.2250738585073E-308 to 1.79769313486231E+308).

Arrays of arrays

Unlike Java, PowerBuilder does not support unbounded multidimensional arrays. If a Java method takes an array of arrays as a parameter, the corresponding PowerBuilder proxy method takes a parameter of type Any. To call the method in PowerBuilder, declare a PowerBuilder array with the same dimensions as the Java array, and pass the array as the parameter.