//
// Java generated by the OrbixWeb IDL compiler 
//

package shared;






public abstract class _ArrayTestSkeleton 
    extends org.omg.CORBA.DynamicImplementation 
{
    protected _ArrayTestSkeleton()
    {
        super();
    }

    public String[] _ids()
    {
        return _ArrayTestStub._interfaces;
    }
    public void invoke(org.omg.CORBA.ServerRequest _req)
    {
        _invoke(_req, this);
    }
    public static void _invoke(org.omg.CORBA.ServerRequest _req,_ArrayTestSkeleton _obj)
    {
        String _opName = _req.op_name();
        org.omg.CORBA.Any _ret = _obj._orb().create_any();
        org.omg.CORBA.NVList _nvl = null;

        if (_opName.equals("_get_string_array_attribute"))
        {
            _ret = _obj._orb().create_any();
            _req.params(_nvl);
            shared.StringArrayHolder _retHolder = new shared.StringArrayHolder();
            _retHolder.value = _obj.string_array_attribute();


            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);
            return;
        }
        if (_opName.equals("_set_string_array_attribute"))
        {
            _nvl = _obj._orb().create_list(1);
            org.omg.CORBA.Any value = _obj._orb().create_any();
            shared.StringArrayHolder value_ = new shared.StringArrayHolder();
            value.insert_Streamable(value_);
            _nvl.add_value(null, value, org.omg.CORBA.ARG_IN.value);
            _req.params(_nvl);
            //--- _obj.string_array_attribute(shared.StringArrayHelper.extract(value));
            _obj.string_array_attribute(value_.value); //+++

            return;
        }
        if (_opName.equals("_get_short_array_attribute"))
        {
            _ret = _obj._orb().create_any();
            _req.params(_nvl);
            shared.ShortArrayHolder _retHolder = new shared.ShortArrayHolder();
            _retHolder.value = _obj.short_array_attribute();


            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);
            return;
        }
        if (_opName.equals("_set_short_array_attribute"))
        {
            _nvl = _obj._orb().create_list(1);
            org.omg.CORBA.Any value = _obj._orb().create_any();
            shared.ShortArrayHolder value_ = new shared.ShortArrayHolder();
            value.insert_Streamable(value_);
            _nvl.add_value(null, value, org.omg.CORBA.ARG_IN.value);
            _req.params(_nvl);
            //--- _obj.short_array_attribute(shared.ShortArrayHelper.extract(value));
            _obj.short_array_attribute(value_.value); //+++

            return;
        }
        if (_opName.equals("_get_float_array_attribute"))
        {
            _ret = _obj._orb().create_any();
            _req.params(_nvl);
            shared.FloatArrayHolder _retHolder = new shared.FloatArrayHolder();
            _retHolder.value = _obj.float_array_attribute();


            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);
            return;
        }
        if (_opName.equals("_set_float_array_attribute"))
        {
            _nvl = _obj._orb().create_list(1);
            org.omg.CORBA.Any value = _obj._orb().create_any();
            shared.FloatArrayHolder value_ = new shared.FloatArrayHolder();
            value.insert_Streamable(value_);
            _nvl.add_value(null, value, org.omg.CORBA.ARG_IN.value);
            _req.params(_nvl);
            //--- _obj.float_array_attribute(shared.FloatArrayHelper.extract(value));
            _obj.float_array_attribute(value_.value); //+++

            return;
        }
        if (_opName.equals("check_string_array_attribute"))
        {
            _req.params(_nvl);

            try {
                _obj.check_string_array_attribute();


            } catch (shared.ArrayTestPackage.failure _ex) {
                shared.ArrayTestPackage.failureHelper.insert(_ret,_ex);
                _req.except(_ret);
            }
            return;
        }
        if (_opName.equals("check_short_array_attribute"))
        {
            _req.params(_nvl);

            try {
                _obj.check_short_array_attribute();


            } catch (shared.ArrayTestPackage.failure _ex) {
                shared.ArrayTestPackage.failureHelper.insert(_ret,_ex);
                _req.except(_ret);
            }
            return;
        }
        if (_opName.equals("check_float_array_attribute"))
        {
            _req.params(_nvl);

            try {
                _obj.check_float_array_attribute();


            } catch (shared.ArrayTestPackage.failure _ex) {
                shared.ArrayTestPackage.failureHelper.insert(_ret,_ex);
                _req.except(_ret);
            }
            return;
        }
        if (_opName.equals("string_array_operation"))
        {
            _ret = _obj._orb().create_any();
            _nvl = _obj._orb().create_list(3);
            org.omg.CORBA.Any one = _obj._orb().create_any();
            shared.StringArrayHolder one_ = new shared.StringArrayHolder();
            one.insert_Streamable(one_);
            _nvl.add_value(null, one, org.omg.CORBA.ARG_IN.value);
            org.omg.CORBA.Any two = _obj._orb().create_any();
            shared.StringArrayHolder two_ = new shared.StringArrayHolder();
            two.insert_Streamable(two_);
            _nvl.add_value(null, two, org.omg.CORBA.ARG_INOUT.value);
            org.omg.CORBA.Any three = _obj._orb().create_any();
            shared.StringArrayHolder three_ = new shared.StringArrayHolder();
            three.insert_Streamable(three_);
            _nvl.add_value(null, three, org.omg.CORBA.ARG_OUT.value);
            _req.params(_nvl);

            shared.StringArrayHolder _retHolder = new shared.StringArrayHolder();
            _retHolder.value = _obj.string_array_operation(one_.value,two_,three_);

            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);

            return;
        }
        if (_opName.equals("short_array_operation"))
        {
            _ret = _obj._orb().create_any();
            _nvl = _obj._orb().create_list(3);
            org.omg.CORBA.Any one = _obj._orb().create_any();
            shared.ShortArrayHolder one_ = new shared.ShortArrayHolder();
            one.insert_Streamable(one_);
            _nvl.add_value(null, one, org.omg.CORBA.ARG_IN.value);
            org.omg.CORBA.Any two = _obj._orb().create_any();
            shared.ShortArrayHolder two_ = new shared.ShortArrayHolder();
            two.insert_Streamable(two_);
            _nvl.add_value(null, two, org.omg.CORBA.ARG_INOUT.value);
            org.omg.CORBA.Any three = _obj._orb().create_any();
            shared.ShortArrayHolder three_ = new shared.ShortArrayHolder();
            three.insert_Streamable(three_);
            _nvl.add_value(null, three, org.omg.CORBA.ARG_OUT.value);
            _req.params(_nvl);

            shared.ShortArrayHolder _retHolder = new shared.ShortArrayHolder();
            _retHolder.value = _obj.short_array_operation(one_.value,two_,three_);

            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);

            return;
        }
        if (_opName.equals("float_array_operation"))
        {
            _ret = _obj._orb().create_any();
            _nvl = _obj._orb().create_list(3);
            org.omg.CORBA.Any one = _obj._orb().create_any();
            shared.FloatArrayHolder one_ = new shared.FloatArrayHolder();
            one.insert_Streamable(one_);
            _nvl.add_value(null, one, org.omg.CORBA.ARG_IN.value);
            org.omg.CORBA.Any two = _obj._orb().create_any();
            shared.FloatArrayHolder two_ = new shared.FloatArrayHolder();
            two.insert_Streamable(two_);
            _nvl.add_value(null, two, org.omg.CORBA.ARG_INOUT.value);
            org.omg.CORBA.Any three = _obj._orb().create_any();
            shared.FloatArrayHolder three_ = new shared.FloatArrayHolder();
            three.insert_Streamable(three_);
            _nvl.add_value(null, three, org.omg.CORBA.ARG_OUT.value);
            _req.params(_nvl);

            shared.FloatArrayHolder _retHolder = new shared.FloatArrayHolder();
            _retHolder.value = _obj.float_array_operation(one_.value,two_,three_);

            _ret.insert_Streamable(_retHolder);
            _req.result(_ret);

            return;
        }
        else
            throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
    }

    public abstract String[] string_array_attribute();

    public abstract void string_array_attribute(String[] value);

    public abstract short[][] short_array_attribute();

    public abstract void short_array_attribute(short[][] value);

    public abstract float[][][] float_array_attribute();

    public abstract void float_array_attribute(float[][][] value);

    public abstract void check_string_array_attribute() 
        throws shared.ArrayTestPackage.failure;

    public abstract void check_short_array_attribute() 
        throws shared.ArrayTestPackage.failure;

    public abstract void check_float_array_attribute() 
        throws shared.ArrayTestPackage.failure;

    public abstract String[] string_array_operation(String[] one,shared.StringArrayHolder two,shared.StringArrayHolder three) ;

    public abstract short[][] short_array_operation(short[][] one,shared.ShortArrayHolder two,shared.ShortArrayHolder three) ;

    public abstract float[][][] float_array_operation(float[][][] one,shared.FloatArrayHolder two,shared.FloatArrayHolder three) ;

}
