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.JsonParser
parser
-
Fields inherited from class org.openstreetmap.josm.io.AbstractReader
cancel, ds, externalIdMap, relations, uploadChangeset, ways
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
OsmJsonReader()
constructor (for private and subclasses use only)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected DataSet
doParseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor)
protected void
parse()
static DataSet
parseDataSet(java.io.InputStream source, ProgressMonitor progressMonitor)
Parse the given input source and return the dataset.private void
parseElements(jakarta.json.JsonArray jsonArray)
private void
parseNode(jakarta.json.JsonObject item)
private void
parseRelation(jakarta.json.JsonObject item)
private void
parseRemark(java.lang.String remark)
private void
parseRoot(jakarta.json.JsonObject object)
private void
parseUnknown(jakarta.json.JsonObject element)
protected void
parseUnknown(jakarta.json.JsonObject element, boolean printWarning)
private void
parseWay(jakarta.json.JsonObject item)
private void
readCommon(jakarta.json.JsonObject item, PrimitiveData current)
Read out the common attributes and put them into current OsmPrimitive.private void
readRelationMembersAndTags(jakarta.json.JsonObject item, RelationData r, java.util.Collection<RelationMemberData> members)
private static void
readTags(jakarta.json.JsonObject item, Tagged t)
private static void
readWayNodesAndTags(jakarta.json.JsonObject item, WayData w, java.util.Collection<java.lang.Long> nodeIds)
protected void
setParser(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:
doParseDataSet
in 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.INSTANCE
is 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
-
-