private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException, NoSuchFieldException { stream.defaultReadObject(); int entryCount = stream.readInt(); ImmutableMap.Builder<E, Integer> builder = ImmutableMap.builder(); long tmpSize = 0; for (int i = 0; i < entryCount; i++) { @SuppressWarnings("unchecked") // reading data stored by writeMultiset E element = (E) stream.readObject(); int count = stream.readInt(); if (count <= 0) { throw new InvalidObjectException("Invalid count " + count); } builder.put(element, count); tmpSize += count; } Serialization.setFinalField(ImmutableMultiset.class, this, "map", builder.build()); Serialization.setFinalField(ImmutableMultiset.class, this, "size", (int) Math.min(tmpSize, Integer.MAX_VALUE)); }
Serialization.setFinalField( ImmutableMultimap.class, this, "map", builder.build()); Serialization.setFinalField(ImmutableMultimap.class, this, "size", tmpSize);
private void readObject(ObjectInputStream stream) throws IOException, ClassNotFoundException, NoSuchFieldException { stream.defaultReadObject(); Serialization.setFinalField(ConcurrentMultiset.class, this, "countMap", Maps.newConcurrentHashMap()); Serialization.populateMultiset(this, stream); }