protected void readTransportIndex(TransportIndex ind) throws IOException { while (true) { int t = codedIS.readTag(); int tag = WireFormat.getTagFieldNumber(t); switch (tag) { case 0: return; case OsmandOdb.OsmAndTransportIndex.ROUTES_FIELD_NUMBER: skipUnknownField(t); break; case OsmandOdb.OsmAndTransportIndex.NAME_FIELD_NUMBER: ind.setName(codedIS.readString()); break; case OsmandOdb.OsmAndTransportIndex.STOPS_FIELD_NUMBER: ind.stopsFileLength = readInt(); ind.stopsFileOffset = codedIS.getTotalBytesRead(); int old = codedIS.pushLimit(ind.stopsFileLength); readTransportBounds(ind); codedIS.popLimit(old); break; case OsmandOdb.OsmAndTransportIndex.STRINGTABLE_FIELD_NUMBER: IndexStringTable st = new IndexStringTable(); st.length = codedIS.readRawVarint32(); st.fileOffset = codedIS.getTotalBytesRead(); readStringTable(st, 0, 20, true); ind.stringTable = st; codedIS.seek(st.length + st.fileOffset); break; default: skipUnknownField(t); break; } } }
private void readTransportBounds(TransportIndex ind) throws IOException { while (true) { int t = codedIS.readTag(); int tag = WireFormat.getTagFieldNumber(t); switch (tag) { case 0: return; case OsmandOdb.TransportStopsTree.LEFT_FIELD_NUMBER: ind.left = codedIS.readSInt32(); break; case OsmandOdb.TransportStopsTree.RIGHT_FIELD_NUMBER: ind.right = codedIS.readSInt32(); break; case OsmandOdb.TransportStopsTree.TOP_FIELD_NUMBER: ind.top = codedIS.readSInt32(); break; case OsmandOdb.TransportStopsTree.BOTTOM_FIELD_NUMBER: ind.bottom = codedIS.readSInt32(); break; default: skipUnknownField(t); break; } } }