@Override public Map<? extends Object, ? extends Object> deserialise(final byte[] bytes) throws SerialisationException { Map map; if (null == getMapClass()) { map = new HashMap<>(); } else { try { map = getMapClass().newInstance(); } catch (final IllegalAccessException | IllegalArgumentException | SecurityException | InstantiationException e) { throw new SerialisationException("Failed to create map instance" + e.getMessage(), e); } } final int arrayLength = bytes.length; int carriage = 0; while (carriage < arrayLength) { LengthValueBytesSerialiserUtil.ObjectCarriage c = LengthValueBytesSerialiserUtil.deserialiseNextObject(getKeySerialiser(), carriage, bytes); LengthValueBytesSerialiserUtil.ObjectCarriage c2 = LengthValueBytesSerialiserUtil.deserialiseNextObject(getValueSerialiser(), c.getCarriage(), bytes); map.put(c.getObject(), c2.getObject()); carriage = c2.getCarriage(); } return map; }
@Override public Map<? extends Object, ? extends Object> deserialise(final byte[] bytes) throws SerialisationException { Map map; if (null == getMapClass()) { map = new HashMap<>(); } else { try { map = getMapClass().newInstance(); } catch (final IllegalAccessException | IllegalArgumentException | SecurityException | InstantiationException e) { throw new SerialisationException("Failed to create map instance" + e.getMessage(), e); } } final int arrayLength = bytes.length; int carriage = 0; while (carriage < arrayLength) { LengthValueBytesSerialiserUtil.ObjectCarriage c = LengthValueBytesSerialiserUtil.deserialiseNextObject(getKeySerialiser(), carriage, bytes); LengthValueBytesSerialiserUtil.ObjectCarriage c2 = LengthValueBytesSerialiserUtil.deserialiseNextObject(getValueSerialiser(), c.getCarriage(), bytes); map.put(c.getObject(), c2.getObject()); carriage = c2.getCarriage(); } return map; }