Java Compat Mapping for Operations on Local Types

An operation on a local interface or a local class is mapped to a Java method with the same name. The mapping of operation parameters to Java is identical to the Client-Side Mapping for these parameters, in particular, out parameters are mapped to Java Holder parameters.

Unlike the Client-Side mapping, there is no mapped method with a trailing Context parameter.

For example:

Slice
module M
{
    local interface L; // forward declared
    local sequence<L> LSeq;
    local interface L
    {
        string op(int n, string s, LocalObject any, out int m, out string t, out LSeq newLSeq);
    }
}

is mapped to:

Java
package M;
 
public final class LSeqHolder extends Ice.Holder<L[]> { ... }
public interface L
{
    String op(int n, String s, java.lang.Object any, Ice.IntHolder m, Ice.StringHolder t, LSeqHolder newLSeq);
}