Package org.omg.CORBA

Examples of org.omg.CORBA.MARSHAL


        }
        else
        {
            if( value instanceof org.omg.CORBA.LocalObject )
            {
                throw new MARSHAL("Attempt to serialize a locality-constrained object.");
            }
            org.omg.CORBA.portable.ObjectImpl obj =
                (org.omg.CORBA.portable.ObjectImpl)value;

            IOR intermediary = ((Delegate)obj._get_delegate()).getIOR();
View Full Code Here


                        write_long( _kind  );
                        break;
                    }
                    case TCKind._tk_longdouble: // 25
                    {
                        throw new MARSHAL("Cannot handle TypeCode with kind: " + _kind);
                    }
                    case TCKind._tk_wchar: // 26
                    {
                        write_long( _kind  );
                        break;
                    }
                    case TCKind._tk_wstring: // 27
                    {
                        write_long( _kind  );
                        write_long(typeCode.length());
                        break;
                    }
                    case TCKind._tk_fixed: //28
                    {
                        write_long( _kind  );
                        write_ushort( typeCode.fixed_digits() );
                        write_short( typeCode.fixed_scale() );
                        break;
                    }
                    case TCKind._tk_value: // 29
                    {
                        if (useIndirection &&
                                repeatedTCMap.containsKey(typeCode))
                        {
                            writeIndirectionMarker(typeCode, repeatedTCMap);
                        }
                        else
                        {
                            write_long( _kind  );

                            final Integer tcStartPos = ObjectUtil.newInteger( pos );
                            recursiveTCMap.put( typeCode.id(), tcStartPos );

                            beginEncapsulation();
                            write_string(typeCode.id());
                            write_string(typeCode.name());
                            write_short( typeCode.type_modifier() );
                            final org.omg.CORBA.TypeCode baseType = typeCode.concrete_base_type();
                            if (baseType == null)
                            {
                                write_long (TCKind._tk_null);
                            }
                            else
                            {
                                write_TypeCode(baseType, recursiveTCMap, repeatedTCMap);
                            }
                            _memberCount = typeCode.member_count();
                            write_long(_memberCount);
                            for( int i = 0; i < _memberCount; i++)
                            {
                                write_string( typeCode.member_name(i) );
                                write_TypeCode( typeCode.member_type(i), recursiveTCMap, repeatedTCMap );
                                write_short( typeCode.member_visibility(i) );
                            }
                            endEncapsulation();

                            // add typecode to cache not until here to account
                            // for recursive TCs
                            repeatedTCMap.put(typeCode, tcStartPos);
                        }
                        break;
                    }
                    case TCKind._tk_value_box: // 30
                    {
                        if (useIndirection && repeatedTCMap.containsKey(typeCode))
                        {
                            writeIndirectionMarker(typeCode, repeatedTCMap);
                        }
                        else
                        {
                            write_long( _kind  );
                            final Integer tcStartPos = ObjectUtil.newInteger( pos );
                            recursiveTCMap.put( typeCode.id(), tcStartPos );

                            beginEncapsulation();
                            write_string(typeCode.id());
                            write_string(typeCode.name());
                            write_TypeCode( typeCode.content_type(), recursiveTCMap, repeatedTCMap);
                            endEncapsulation();

                            // add typecode to cache not until here to account
                            // for recursive TCs
                            repeatedTCMap.put(typeCode, tcStartPos);
                        }
                        break;
                    }
                    case TCKind._tk_native:
                    {
                        throw new MARSHAL("Cannot handle TypeCode with kind: " + _kind);
                    }
                    case TCKind._tk_abstract_interface:
                    {
                        if (useIndirection && repeatedTCMap.containsKey(typeCode))
                        {
                            writeIndirectionMarker(typeCode, repeatedTCMap);
                        }
                        else
                        {
                            write_long( _kind  );
                            final Integer tcStartPos = ObjectUtil.newInteger( pos );
                            recursiveTCMap.put( typeCode.id(), tcStartPos );

                            beginEncapsulation();
                            write_string(typeCode.id());
                            write_string(typeCode.name());
                            endEncapsulation();

                            // add typecode to cache not until here to account
                            // for recursive TCs
                            repeatedTCMap.put(typeCode, tcStartPos);
                        }
                        break;
                    }
                    default:
                    {
                        throw new MARSHAL ("Cannot handle TypeCode with kind: " + _kind);
                    }
                }
            }
        }
        catch (BadKind ex)
        {
            throw new MARSHAL
                ("When processing TypeCode with kind: " + _kind + " caught " + ex);
        }
        catch (Bounds ex)
        {
            throw new MARSHAL
                ("When processing TypeCode with kind: " + _kind + " caught " + ex);
        }
    }
View Full Code Here

                        }
                        case TCKind._tk_float:      // 6
                            // fallthrough
                        case TCKind._tk_double:     // 7
                        {
                            throw new MARSHAL(
                                "Invalid union discriminator type: " + disc);
                        }
                        case TCKind._tk_boolean:    // 8
                        {
                            boolean s = input.read_boolean();
                            write_boolean(s);
                            for(int i = 0 ; i < typeCode.member_count() ; i++)
                            {
                                if(i != def_idx)
                                {
                                    if(s == typeCode.member_label(i).extract_boolean())
                                    {
                                        member_idx = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        }
                        case TCKind._tk_char:       // 9
                        {
                            char s = input.read_char();
                            write_char(s);
                            for(int i = 0 ; i < typeCode.member_count() ; i++)
                            {
                                if(i != def_idx)
                                {
                                    if(s == typeCode.member_label(i).extract_char())
                                    {
                                        member_idx = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        }
                        case TCKind._tk_octet:      // 10
                        case TCKind._tk_any:        // 11
                        case TCKind._tk_TypeCode:   // 12
                        case TCKind._tk_Principal:  // 13
                        case TCKind._tk_objref:     // 14
                        case TCKind._tk_struct:     // 15
                        case TCKind._tk_union:      // 16
                        {
                            throw new MARSHAL(
                                "Invalid union discriminator type: " + disc);
                        }
                        case TCKind._tk_enum:       // 17
                        {
                            int s = input.read_long();
                            write_long(s);
                            for( int i = 0 ; i < typeCode.member_count(); i++ )
                            {
                                if( i != def_idx)
                                {
                                    int label =
                                    typeCode.member_label(i).create_input_stream().read_long();
                                    /*  we  have to  use  the any's  input
                                        stream   because   enums  are   not
                                        inserted as longs */

                                    if( s == label)
                                    {
                                        member_idx = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        }
                        case TCKind._tk_string:     // 18
                        case TCKind._tk_sequence:   // 19
                        case TCKind._tk_array:      // 20
                        case TCKind._tk_alias:      // 21
                        case TCKind._tk_except:     // 22
                        {
                            throw new MARSHAL(
                                "Invalid union discriminator type: " + disc);
                        }
                        case TCKind._tk_longlong:   // 23
                        {
                            long s = input.read_longlong();
                            write_longlong(s);
                            for(int i = 0 ; i < typeCode.member_count() ; i++)
                            {
                                if(i != def_idx)
                                {
                                    if(s == typeCode.member_label(i).extract_longlong())
                                    {
                                        member_idx = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        }
                        case TCKind._tk_ulonglong:  // 24
                        {
                            long s = input.read_ulonglong();
                            write_ulonglong(s);
                            for(int i = 0 ; i < typeCode.member_count() ; i++)
                            {
                                if(i != def_idx)
                                {
                                    if(s == typeCode.member_label(i).extract_ulonglong())
                                    {
                                        member_idx = i;
                                        break;
                                    }
                                }
                            }
                            break;
                        }
                        default:
                        {
                            throw new MARSHAL("Invalid union discriminator type: " + disc);
                        }
                    }

                    // write the member or default value, if any
                    // (if the union has no explicit default but the
                    // the case labels do not cover the range of
                    // possible discriminator values, there may be
                    // several "implicit defaults" without associated
                    // union values.

                    if( member_idx != -1 )
                    {
                        write_value( typeCode.member_type( member_idx ), input );
                    }
                    else if( def_idx != -1 )
                    {
                        write_value( typeCode.member_type( def_idx ), input );
                    }
                    break;
                }
                case TCKind._tk_enum:       // 17
                {
                    write_long( input.read_long() );
                    break;
                }
                case TCKind._tk_string:     // 18
                {
                    write_string( input.read_string());
                    break;
                }
                case TCKind._tk_sequence:   // 19
                {
                    int len = input.read_long();
                    write_long(len);

                    org.omg.CORBA.TypeCode content_tc = typeCode.content_type();
                    for( int i = 0; i < len; i++ )
                    {
                        write_value(content_tc, input);
                    }

                    break;
                }
                case TCKind._tk_array:      // 20
                {
                    int length = typeCode.length();
                    if( typeCode.content_type().kind().value() == TCKind._tk_octet )
                    {
                        check( length );
                        input.read_octet_array( buffer, pos, length);
                        index+= length;
                        pos += length;
                    }
                    else
                    {
                        for( int i = 0; i < length; i++ )
                        {
                            write_value( typeCode.content_type(), input );
                        }
                    }
                    break;
                }
                case TCKind._tk_alias:      // 21
                {
                    write_value( typeCode.content_type(), input );
                    break;
                }
                case TCKind._tk_except:     // 22
                {
                    write_string( input.read_string());
                    for (int i = 0; i < typeCode.member_count(); i++)
                    {
                        write_value(typeCode.member_type(i), input);
                    }
                    break;
                }
                case TCKind._tk_longlong:   // 23
                {
                    write_longlong(input.read_longlong());
                    break;
                }
                case TCKind._tk_ulonglong:  // 24
                {
                    write_ulonglong( input.read_ulonglong());
                    break;
                }
                case TCKind._tk_longdouble: // 25
                {
                    throw new org.omg.CORBA.BAD_TYPECODE(
                        "type longdouble not supported in java");
                }
                case TCKind._tk_wchar:      // 26
                {
                    write_wchar( input.read_wchar());
                    break;
                }
                case TCKind._tk_wstring:    // 27
                {
                    write_wstring( input.read_wstring());
                    break;
                }
                case TCKind._tk_fixed:      // 28
                {
                    final short digits = typeCode.fixed_digits();
                    final short scale = typeCode.fixed_scale();
                    final BigDecimal value;

                    if (input instanceof CDRInputStream)
                    {
                        value = ((CDRInputStream)input).read_fixed(digits, scale);
                    }
                    else
                    {
                        // TODO can we remove this? mixed usage orb classes from different vendors ...
                        value = input.read_fixed();
                    }
                    write_fixed(value, digits, scale);
                    break;
                }
                case TCKind._tk_value:      // 29
                {
                    final Serializable val = ((org.omg.CORBA_2_3.portable.InputStream)input).read_value();
                    write_value(val, typeCode.id());
                    break;
                }
                case TCKind._tk_value_box:
                {
                    String id = typeCode.id();
                    org.omg.CORBA.portable.BoxedValueHelper helper =
                        ((org.jacorb.orb.ORB)orb()).getBoxedValueHelper(id);
                    if (helper == null)
                    {
                        throw new MARSHAL("No BoxedValueHelper for id " + id);
                    }
                    java.io.Serializable value =
                        ((org.omg.CORBA_2_3.portable.InputStream)input).read_value(helper);
                    write_value (value, helper);
                    break;
                }
                default:
                {
                    throw new MARSHAL("Cannot handle TypeCode with kind " + kind);
                }
            }
        }
        catch (BadKind ex)
        {
            throw new MARSHAL
                ("When processing TypeCode with kind: " + kind + " caught " + ex);
        }
        catch (Bounds ex)
        {
            throw new MARSHAL
                ("When processing TypeCode with kind: " + kind + " caught " + ex);
        }
    }
View Full Code Here

                            { org.omg.CORBA.portable.OutputStream.class, clazz };
                        writeMethod = helperClass.getMethod("write", paramTypes);
                    }
                    catch (ClassNotFoundException e)
                    {
                        throw new MARSHAL("Error loading class " + helperClassName
                                          + ": " + e);
                    }
                    catch (NoSuchMethodException e)
                    {
                        throw new MARSHAL("No write method in helper class "
                                          + helperClassName + ": " + e);
                    }
                }
                write_value_header( repository_ids, codebase );
                start_chunk();
                if (writeMethod == null)
                {
                    write_any((org.omg.CORBA.Any)value);
                }
                else
                {
                    try
                    {
                        writeMethod.invoke(null, new Object[] { this, value });
                    }
                    catch (IllegalAccessException e)
                    {
                        throw new MARSHAL("Internal error: " + e);
                    }
                    catch (java.lang.reflect.InvocationTargetException e)
                    {
                        throw new MARSHAL("Exception marshaling IDLEntity: "
                                          + e.getTargetException());
                    }
                }
                end_chunk();
View Full Code Here

                    break;
                }
                default :
                {
                    throw new MARSHAL( "Unknown GIOP minor: " + giop_minor );
                }
            }
        }
        close();
        if ( ctx_out != null )
View Full Code Here

                    skipHeaderPadding();

                    break;
                }
                default : {
                    throw new MARSHAL( "Unknown GIOP minor version: " + giop_minor );
                }
            }

            is_locate_request = false;
        }
        else if( Messages.getMsgType( buffer ) == MsgType_1_1._LocateRequest )
        {
            switch( giop_minor )
            {
                case 0 :
                {
                    //GIOP 1.0 = GIOP 1.1, fall through
                }
                case 1 :
                {
                    //GIOP 1.1
                    LocateRequestHeader_1_0 locate_req_hdr =
                        LocateRequestHeader_1_0Helper.read( this );

                    TargetAddress addr = new TargetAddress();
                    addr.object_key( locate_req_hdr.object_key );

                    req_hdr =
                        new RequestHeader_1_2( locate_req_hdr.request_id,
                                               (byte) 0x03,//response_expected
                                               reserved,
                                               addr,
                                               "_non_existent",
                                               Messages.service_context );
                    break;
                }
                case 2 :
                {
                    //GIOP 1.2
                    LocateRequestHeader_1_2 locate_req_hdr =
                        LocateRequestHeader_1_2Helper.read( this );

                    req_hdr =
                        new RequestHeader_1_2( locate_req_hdr.request_id,
                                               (byte) 0x03,//response_expected
                                               reserved,
                                               locate_req_hdr.target,
                                               "_non_existent",
                                               Messages.service_context );
                    break;
                }
                default :
                {
                    throw new MARSHAL( "Unknown GIOP minor version: " + giop_minor );
                }
            }

            is_locate_request = true;
        }
        else
        {
            throw new MARSHAL( "Error: not a request!" );
        }
    }
View Full Code Here

                    break;
                }
                default :
                {
                    throw new MARSHAL("Unknown GIOP minor version: " + giop_minor);
                }
            }
        }
        else
        {
            throw new MARSHAL("Not a Locate request!");
        }
    }
View Full Code Here

                break;
            }
            default :
            {
                throw new MARSHAL( "Unknown GIOP minor: " + giop_minor );
            }
        }
    }
View Full Code Here

   public void _write(org.omg.CORBA.portable.OutputStream out)
   {
       if (value == null)
       {
           throw new MARSHAL("value may not be null");
       }

       TypeCode typeCode = _type();
       try
       {
View Full Code Here

                            "WARNING: Got reply status NEEDS_ADDRESSING_MODE "
                          + "(not implemented)." );
            }
            default:
            {
                throw new MARSHAL
                    ("Received unexpected reply status: " + status.value() );
            }
        }
    }
View Full Code Here

TOP

Related Classes of org.omg.CORBA.MARSHAL

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.