Package org.openstreetmap.josm.io
Class OsmJsonReader
- java.lang.Object
-
- org.openstreetmap.josm.io.AbstractReader
-
- org.openstreetmap.josm.io.OsmJsonReader
-
- Direct Known Subclasses:
OverpassDownloadReader.OverpassOsmJsonReader
public class OsmJsonReader extends AbstractReader
Parser for the Osm API (JSON output). Read from an input stream and construct a dataset out of it.For each json element, there is a dedicated method.
- Since:
- 14086
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.openstreetmap.josm.io.AbstractReader
AbstractReader.BinaryParserWorker, AbstractReader.CommonReader, AbstractReader.NodeReader, AbstractReader.ParserWorker, AbstractReader.RelationReader, AbstractReader.WayReader
-
-
Field Summary
Fields Modifier and Type Field Description protected jakarta.json.stream.JsonParserparser-
Fields inherited from class org.openstreetmap.josm.io.AbstractReader
cancel, ds, externalIdMap, relations, uploadChangeset, ways
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedOsmJsonReader()constructor (for private and subclasses use only)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DataSetdoParseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor)protected voidparse()static DataSetparseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor)Parse the given input source and return the dataset.private voidparseElements(jakarta.json.JsonArray jsonArray)private voidparseNode(jakarta.json.JsonObject item)private voidparseRelation(jakarta.json.JsonObject item)private voidparseRemark(java.lang.String remark)private voidparseRoot(jakarta.json.JsonObject object)private voidparseUnknown(jakarta.json.JsonObject element)protected voidparseUnknown(jakarta.json.JsonObject element, boolean printWarning)private voidparseWay(jakarta.json.JsonObject item)private voidreadCommon(jakarta.json.JsonObject item, PrimitiveData current)Read out the common attributes and put them into current OsmPrimitive.private voidreadRelationMembersAndTags(jakarta.json.JsonObject item, RelationData r, java.util.Collection<RelationMemberData> members)private static voidreadTags(jakarta.json.JsonObject item, Tagged t)private static voidreadWayNodesAndTags(jakarta.json.JsonObject item, WayData w, java.util.Collection<java.lang.Long> nodeIds)protected voidsetParser(jakarta.json.stream.JsonParser parser)-
Methods inherited from class org.openstreetmap.josm.io.AbstractReader
buildPrimitive, callPostProcessors, deregisterPostprocessor, doParseDataSet, doParseDataSet, getDataSet, getLong, parseAction, parseBounds, parseChangeset, parseChangeset, parseDownloadPolicy, parseId, parseLocked, parseNode, parseNode, parseRelation, parseRelationMember, parseRelationMember, parseTag, parseTimestamp, parseUploadPolicy, parseUser, parseUser, parseVersion, parseVersion, parseVersion, parseVisible, parseWay, prepareDataSet, processChangesetAfterParsing, processNodesAfterParsing, processRelationsAfterParsing, processWaysAfterParsing, registerPostprocessor
-
-
-
-
Field Detail
-
parser
protected jakarta.json.stream.JsonParser parser
-
-
Constructor Detail
-
OsmJsonReader
protected OsmJsonReader()
constructor (for private and subclasses use only)
-
-
Method Detail
-
setParser
protected void setParser(jakarta.json.stream.JsonParser parser)
-
parse
protected void parse() throws IllegalDataException
- Throws:
IllegalDataException
-
parseRoot
private void parseRoot(jakarta.json.JsonObject object) throws IllegalDataException
- Throws:
IllegalDataException
-
parseRemark
private void parseRemark(java.lang.String remark)
-
parseElements
private void parseElements(jakarta.json.JsonArray jsonArray) throws IllegalDataException
- Throws:
IllegalDataException
-
readCommon
private void readCommon(jakarta.json.JsonObject item, PrimitiveData current) throws IllegalDataException
Read out the common attributes and put them into current OsmPrimitive.- Parameters:
item- current JSON objectcurrent- primitive to update- Throws:
IllegalDataException- if there is an error processing the underlying JSON source
-
parseNode
private void parseNode(jakarta.json.JsonObject item) throws IllegalDataException
- Throws:
IllegalDataException
-
parseWay
private void parseWay(jakarta.json.JsonObject item) throws IllegalDataException
- Throws:
IllegalDataException
-
readWayNodesAndTags
private static void readWayNodesAndTags(jakarta.json.JsonObject item, WayData w, java.util.Collection<java.lang.Long> nodeIds)
-
parseRelation
private void parseRelation(jakarta.json.JsonObject item) throws IllegalDataException
- Throws:
IllegalDataException
-
readRelationMembersAndTags
private void readRelationMembersAndTags(jakarta.json.JsonObject item, RelationData r, java.util.Collection<RelationMemberData> members) throws IllegalDataException
- Throws:
IllegalDataException
-
parseUnknown
protected void parseUnknown(jakarta.json.JsonObject element, boolean printWarning)
-
parseUnknown
private void parseUnknown(jakarta.json.JsonObject element)
-
doParseDataSet
protected DataSet doParseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException
- Specified by:
doParseDataSetin classAbstractReader- Throws:
IllegalDataException
-
parseDataSet
public static DataSet parseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor) throws IllegalDataException
Parse the given input source and return the dataset.- Parameters:
source- the source input stream. Must not be null.progressMonitor- the progress monitor. If null,NullProgressMonitor.INSTANCEis assumed- Returns:
- the dataset with the parsed data
- Throws:
IllegalDataException- if an error was found while parsing the data from the sourcejava.lang.IllegalArgumentException- if source is null
-
-