Changeset 15:4ac20dea4e70 in rrlib_serialization-java


Ignore:
Timestamp:
22.04.2014 01:51:29 (6 years ago)
Author:
Max Reichardt <mreichardt@…>
Branch:
default
Phase:
public
Message:

Bugfix: Native enums in GenericObjects are now (de)serialized properly again

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • BinaryInputStream.java

    r2 r15  
    812812            } 
    813813        } else if (type.isEnum()) { 
     814            if (deserializeTo != null && deserializeTo.getClass().equals(EnumValue.class)) { 
     815                ((EnumValue)deserializeTo).deserialize(this); 
     816                return deserializeTo; 
     817            } 
    814818            return readEnum((Class <? extends Enum >)type); 
    815819        } else if (type == String.class) { 
  • BinaryOutputStream.java

    r2 r15  
    595595            assert(object != null && (object.getClass() == type)); 
    596596            if (type.isEnum()) { 
    597                 writeEnum((Enum)object); 
     597                if (object.getClass().equals(EnumValue.class)) { 
     598                    ((EnumValue)object).serialize(this); 
     599                } else { 
     600                    writeEnum((Enum)object); 
     601                } 
    598602            } else if (type == String.class) { 
    599603                writeString(object.toString()); 
  • StringInputStream.java

    r11 r15  
    342342            assert(deserializeTo != null && (deserializeTo.getClass() == type)); 
    343343            if (type.isEnum()) { 
     344                if (deserializeTo != null && deserializeTo.getClass().equals(EnumValue.class)) { 
     345                    ((EnumValue)deserializeTo).deserialize(this); 
     346                    return deserializeTo; 
     347                } 
    344348                return readEnum((Class<? extends Enum>)type); 
    345349            } else if (type == String.class) { 
  • StringOutputStream.java

    r13 r15  
    133133            assert(object != null && (object.getClass() == type)); 
    134134            if (type.isEnum()) { 
    135                 append((Enum)object); 
     135                if (object.getClass().equals(EnumValue.class)) { 
     136                    ((EnumValue)object).serialize(this); 
     137                } else { 
     138                    append((Enum)object); 
     139                } 
    136140            } else if (type == String.class) { 
    137141                append(object.toString()); 
Note: See TracChangeset for help on using the changeset viewer.