corba/src/java.corba/share/classes/com/sun/corba/se/impl/io/IIOPInputStream.java
changeset 29936 9edf96e1b418
parent 25862 a5e25d68f971
child 31733 0d786ab95c1c
equal deleted inserted replaced
29845:38f98cb6b335 29936:9edf96e1b418
     1 /*
     1 /*
     2  * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1998, 2015, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
  1766 
  1766 
  1767         try {
  1767         try {
  1768             switch (field.getTypeCode()) {
  1768             switch (field.getTypeCode()) {
  1769                 case 'B':
  1769                 case 'B':
  1770                     byte byteValue = orbStream.read_octet();
  1770                     byte byteValue = orbStream.read_octet();
  1771                     bridge.putByte( o, field.getFieldID(), byteValue ) ;
  1771                     if (field.getField() != null) {
  1772                     //reflective code: field.getField().setByte( o, byteValue ) ;
  1772                         bridge.putByte( o, field.getFieldID(), byteValue ) ;
       
  1773                         //reflective code: field.getField().setByte( o, byteValue ) ;
       
  1774                     }
  1773                     break;
  1775                     break;
  1774                 case 'Z':
  1776                 case 'Z':
  1775                     boolean booleanValue = orbStream.read_boolean();
  1777                     boolean booleanValue = orbStream.read_boolean();
  1776                     bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
  1778                     if (field.getField() != null) {
  1777                     //reflective code: field.getField().setBoolean( o, booleanValue ) ;
  1779                         bridge.putBoolean( o, field.getFieldID(), booleanValue ) ;
       
  1780                         //reflective code: field.getField().setBoolean( o, booleanValue ) ;
       
  1781                     }
  1778                     break;
  1782                     break;
  1779                 case 'C':
  1783                 case 'C':
  1780                     char charValue = orbStream.read_wchar();
  1784                     char charValue = orbStream.read_wchar();
  1781                     bridge.putChar( o, field.getFieldID(), charValue ) ;
  1785                     if (field.getField() != null) {
  1782                     //reflective code: field.getField().setChar( o, charValue ) ;
  1786                         bridge.putChar( o, field.getFieldID(), charValue ) ;
       
  1787                         //reflective code: field.getField().setChar( o, charValue ) ;
       
  1788                     }
  1783                     break;
  1789                     break;
  1784                 case 'S':
  1790                 case 'S':
  1785                     short shortValue = orbStream.read_short();
  1791                     short shortValue = orbStream.read_short();
  1786                     bridge.putShort( o, field.getFieldID(), shortValue ) ;
  1792                     if (field.getField() != null) {
  1787                     //reflective code: field.getField().setShort( o, shortValue ) ;
  1793                         bridge.putShort( o, field.getFieldID(), shortValue ) ;
       
  1794                         //reflective code: field.getField().setShort( o, shortValue ) ;
       
  1795                     }
  1788                     break;
  1796                     break;
  1789                 case 'I':
  1797                 case 'I':
  1790                     int intValue = orbStream.read_long();
  1798                     int intValue = orbStream.read_long();
  1791                     bridge.putInt( o, field.getFieldID(), intValue ) ;
  1799                     if (field.getField() != null) {
  1792                     //reflective code: field.getField().setInt( o, intValue ) ;
  1800                         bridge.putInt( o, field.getFieldID(), intValue ) ;
       
  1801                         //reflective code: field.getField().setInt( o, intValue ) ;
       
  1802                     }
  1793                     break;
  1803                     break;
  1794                 case 'J':
  1804                 case 'J':
  1795                     long longValue = orbStream.read_longlong();
  1805                     long longValue = orbStream.read_longlong();
  1796                     bridge.putLong( o, field.getFieldID(), longValue ) ;
  1806                     if (field.getField() != null) {
  1797                     //reflective code: field.getField().setLong( o, longValue ) ;
  1807                         bridge.putLong( o, field.getFieldID(), longValue ) ;
       
  1808                         //reflective code: field.getField().setLong( o, longValue ) ;
       
  1809                     }
  1798                     break;
  1810                     break;
  1799                 case 'F' :
  1811                 case 'F' :
  1800                     float floatValue = orbStream.read_float();
  1812                     float floatValue = orbStream.read_float();
  1801                     bridge.putFloat( o, field.getFieldID(), floatValue ) ;
  1813                     if (field.getField() != null) {
  1802                     //reflective code: field.getField().setFloat( o, floatValue ) ;
  1814                         bridge.putFloat( o, field.getFieldID(), floatValue ) ;
       
  1815                         //reflective code: field.getField().setFloat( o, floatValue ) ;
       
  1816                     }
  1803                     break;
  1817                     break;
  1804                 case 'D' :
  1818                 case 'D' :
  1805                     double doubleValue = orbStream.read_double();
  1819                     double doubleValue = orbStream.read_double();
  1806                     bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
  1820                     if (field.getField() != null) {
  1807                     //reflective code: field.getField().setDouble( o, doubleValue ) ;
  1821                         bridge.putDouble( o, field.getFieldID(), doubleValue ) ;
       
  1822                         //reflective code: field.getField().setDouble( o, doubleValue ) ;
       
  1823                     }
  1808                     break;
  1824                     break;
  1809                 default:
  1825                 default:
  1810                     // XXX I18N, logging needed.
  1826                     // XXX I18N, logging needed.
  1811                     throw new InvalidClassException(cl.getName());
  1827                     throw new InvalidClassException(cl.getName());
  1812             }
  1828             }
  2215 
  2231 
  2216         int primFields = fields.length - currentClassDesc.objFields;
  2232         int primFields = fields.length - currentClassDesc.objFields;
  2217 
  2233 
  2218         if (o != null) {
  2234         if (o != null) {
  2219             for (int i = 0; i < primFields; ++i) {
  2235             for (int i = 0; i < primFields; ++i) {
  2220                 if (fields[i].getField() == null)
       
  2221                     continue;
       
  2222 
       
  2223                 inputPrimitiveField(o, cl, fields[i]);
  2236                 inputPrimitiveField(o, cl, fields[i]);
  2224             }
  2237             }
  2225         }
  2238         }
  2226 
  2239 
  2227         /* Read and set object fields from the input stream. */
  2240         /* Read and set object fields from the input stream. */