private void writeWayNodes(List<Integer> waynodes, int compressionType, MappedByteBuffer buffer) { if (!waynodes.isEmpty() && waynodes.size() % 2 == 0) { Iterator<Integer> waynodeIterator = waynodes.iterator(); buffer.putInt(waynodeIterator.next()); buffer.putInt(waynodeIterator.next()); while (waynodeIterator.hasNext()) { switch (compressionType) { case 0: buffer.putInt(waynodeIterator.next().intValue()); buffer.putInt(waynodeIterator.next().intValue()); break; case 1: buffer.put(Serializer.getSignedThreeBytes(waynodeIterator.next().intValue())); buffer.put(Serializer.getSignedThreeBytes(waynodeIterator.next().intValue())); break; case 2: buffer.putShort(waynodeIterator.next().shortValue()); buffer.putShort(waynodeIterator.next().shortValue()); break; case 3: buffer.put(waynodeIterator.next().byteValue()); buffer.put(waynodeIterator.next().byteValue()); break; } } } }