ByteArrayHelper.java 2.16 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xmlformcallback;

import org.omg.CORBA.*;
import org.omg.CORBA.portable.InputStream;
import org.omg.CORBA.portable.OutputStream;

import java.io.IOException;

public final class ByteArrayHelper {
    private static volatile TypeCode _type;

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

    public static byte[] extract(Any any) {
        if (any.type().kind() == TCKind.tk_null) {
            throw new BAD_OPERATION("Can't extract from Any with null type.");
        }
        return ByteArrayHelper.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<ByteArrayHelper> class_ = ByteArrayHelper.class;
        synchronized (ByteArrayHelper.class) {
            if (_type != null) return _type;
            {
                _type = ORB.init().create_alias_tc(ByteArrayHelper.id(), "ByteArray", ORB.init().create_sequence_tc(0, ORB.init().get_primitive_tc(TCKind.from_int(10))));
            }
            // ** MonitorExit[var0] (shouldn't be in output)
            return _type;
        }
    }

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

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

    public static void write(OutputStream _out, byte[] _s) {
        _out.write_long(_s.length);
        _out.write_octet_array(_s, 0, _s.length);
    }
}