WSPairListHelper.java 2.53 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xmlformcallback;

import com.adobe.xmlformcallback.WSPair;
import com.adobe.xmlformcallback.WSPairHelper;
import org.omg.CORBA.*;
import org.omg.CORBA.portable.InputStream;
import org.omg.CORBA.portable.OutputStream;

import java.io.IOException;

public final class WSPairListHelper {
    private static volatile TypeCode _type;

    public static void insert(Any any, WSPair[] s) {
        any.type(WSPairListHelper.type());
        WSPairListHelper.write(any.create_output_stream(), s);
    }

    public static WSPair[] extract(Any any) {
        if (any.type().kind() == TCKind.tk_null) {
            throw new BAD_OPERATION("Can't extract from Any with null type.");
        }
        return WSPairListHelper.read(any.create_input_stream());
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    public static TypeCode type() {
        if (_type != null) return _type;
        Class<WSPairListHelper> class_ = WSPairListHelper.class;
        synchronized (WSPairListHelper.class) {
            if (_type != null) return _type;
            {
                _type = ORB.init().create_alias_tc(WSPairListHelper.id(), "WSPairList", ORB.init().create_sequence_tc(0, ORB.init().create_struct_tc(WSPairHelper.id(), "WSPair", new StructMember[]{new StructMember("msKey", ORB.init().create_wstring_tc(0), null), new StructMember("msValue", ORB.init().create_wstring_tc(0), null)})));
            }
            // ** MonitorExit[var0] (shouldn't be in output)
            return _type;
        }
    }

    public static String id() {
        return "IDL:com/adobe/xmlformcallback/WSPairList:1.0";
    }

    public static WSPair[] read(InputStream _in) {
        int _l_result1 = _in.read_long();
        try {
            int x = _in.available();
            if (x > 0 && _l_result1 > x) {
                throw new MARSHAL("Sequence length too large. Only " + x + " available and trying to assign " + _l_result1);
            }
        }
        catch (IOException e) {
            // empty catch block
        }
        WSPair[] _result = new WSPair[_l_result1];
        for (int i = 0; i < _result.length; ++i) {
            _result[i] = WSPairHelper.read(_in);
        }
        return _result;
    }

    public static void write(OutputStream _out, WSPair[] _s) {
        _out.write_long(_s.length);
        for (int i = 0; i < _s.length; ++i) {
            WSPairHelper.write(_out, _s[i]);
        }
    }
}