Package org.opengis.cite.ogcapifeatures10.util

# Class JsonUtils

java.lang.Object
org.opengis.cite.ogcapifeatures10.util.JsonUtils

public class JsonUtils extends Object

JsonUtils class.

Author:
  Lyn Goltz

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static int`
  `collectNumberOfAllReturnedFeatures(io.restassured.path.json.JsonPath jsonPath, int maximumLimit)`
  Collects the number of all returned features by iterating over all 'next' links and summarizing the size of features in 'features' array property.
  `static String`
  `findFeaturesUrlForGeoJson(URI rootUri, io.restassured.path.json.JsonPath collection)`
  Finds the URL to the resource /collections/{collectionId}/items from the path /collections/{collectionId}
  `static String`
  `findFeaturesUrlForGeoJson(URI rootUri, Map<String,Object> collection)`
  Finds the URL to the resource /collections/{collectionId}/items from the path /collections
  `static String`
  `findFeatureUrlForGeoJson(URI rootUri, io.restassured.path.json.JsonPath collection, String featureId)`
  Finds the URL to the resource /collections/{collectionId}/items/{featureId} from the path /collections and creates an valid url to this resource
  `static String`
  `findFeatureUrlForGeoJson(URI rootUri, Map<String,Object> collection, String featureId)`
  Finds the URL to the resource /collections/{collectionId}/items/{featureId} from the path /collections and creates an valid url to this resource
  `static Map<String,Object>`
  `findLinkByRel(List<Map<String,Object>> links, String expectedRel)`
  Parses the link with 'rel=self'.
  `static List<String>`
  `findLinksWithoutRelOrType(List<Map<String,Object>> links, Set<String> rels)`
  Parses the links without 'rel' or 'type' property.
  `static List<Map<String,Object>>`
  `findLinksWithSupportedMediaTypeByRel(List<Map<String,Object>> links, List<String> mediaTypesToSupport, String expectedRel)`
  Parses all links with 'type' of one of the passed mediaTypes and the 'rel' property with the passed value.
  `static List<String>`
  `findUnsupportedTypes(List<Map<String,Object>> links, List<String> mediaTypesToSuppport)`
  Parsing the media types which does not have a link woth property 'type' for.
  `static String`
  `formatDate(LocalDate date)`
  Formats the passed string as ISO 8601 date.
  `static String`
  `formatDate(ZonedDateTime dateTime)`
  Formats the passed string as ISO 8601 date.
  `static String`
  `formatDateRange(ZonedDateTime beginDateTime, ZonedDateTime endDateTime)`
  Formats the passed string as a period using a start and end time.
  `static String`
  `formatDateRangeWithDuration(LocalDate beginDate, LocalDate endDate)`
  Formats the passed string as a period using start time and a duration.
  `static boolean`
  `hasAtLeastOneSpatialFeatureCollection(io.restassured.path.json.JsonPath jsonPath)`
  Checks if a at least one of the collection in the /collections response has a spatial extent.
  `static boolean`
  `hasAtLeastOneSpatialFeatureCollection(Object extent)`
  Checks if the extent contains a spatial extent.
  `static boolean`
  `hasAtLeastOneSpatialFeatureCollection(Map<String,Object> collection)`
  Checks if a at least one of the collection in the /collections response has a spatial extent.
  `static boolean`
  `hasProperty(String propertyName, io.restassured.path.json.JsonPath jsonPath)`
  Checks if a property with the passed name exists in the jsonPath.
  `static boolean`
  `linkIncludesRelAndType(Map<String,Object> link)`
  Checks if the passed link contains 'rel' and 'type' properties.
  `static ZonedDateTime`
  `parseAsDate(String dateTime)`
  Parses the passed string as ISO 8601 date.
  `static List<String>`
  `parseAsList(String propertyName, io.restassured.path.json.JsonPath jsonPath)`
  Retrieves the property values as list.
  `static List<String>`
  `parseAsList(String propertyName, Map<String,Object> json)`
  Retrieves the property values as list.
  `static List<Map<String,Object>>`
  `parseAsListOfMaps(String propertyName, io.restassured.path.json.JsonPath jsonPath)`
  Retrieves the property values as list.
  `static String`
  `parseAsString(Object value)`
  Parse value ass string.
  `static org.locationtech.jts.geom.Geometry`
  `parseFeatureGeometry(Map<String,Object> feature, CoordinateSystem crs)`
  Parse the geometry property as geometry.
  `static String`
  `parseFeatureId(io.restassured.path.json.JsonPath collectionItemJson)`
  Parses the id of the first feature from the passed json.
  `static BBox`
  `parseSpatialExtent(Map<String,Object> collection)`
  Parses the spatial extent from the passed collection.
  `static TemporalExtent`
  `parseTemporalExtent(Map<String,Object> collection)`
  Parses the temporal extent from the passed collection.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### parseAsString

    public static String parseAsString(Object value)
    Parse value ass string.
    Parameters:
      `value` - to parse, may be `null`
    Returns:
      the value as string, `null` if the passed value was `null`

  - ### parseFeatureId

    public static String parseFeatureId(io.restassured.path.json.JsonPath collectionItemJson)
    Parses the id of the first feature from the passed json.
    Parameters:
      `collectionItemJson` - the json document containing the features, never `null`
    Returns:
      the parsed id, may be `null` if no feature could be found

  - ### parseTemporalExtent

    public static TemporalExtent parseTemporalExtent(Map<String,Object> collection)
    Parses the temporal extent from the passed collection.
    Parameters:
      `collection` - the collection containing the extent to parse, never `null`
    Returns:
      the parsed temporal extent, `null` if no extent exists
    Throws:
      `IllegalArgumentException` - if the number of items in the extent invalid

  - ### parseAsDate

    public static ZonedDateTime parseAsDate(String dateTime)
    Parses the passed string as ISO 8601 date.
    Parameters:
      `dateTime` - the dateTime to parse, never `null`
    Returns:
      the parsed date, never `null`

  - ### formatDate

    public static String formatDate(ZonedDateTime dateTime)
    Formats the passed string as ISO 8601 date. Example: "2018-02-12T23:20:50Z"
    Parameters:
      `dateTime` - the dateTime to format, never `null`
    Returns:
      the formatted date, never `null`

  - ### formatDate

    public static String formatDate(LocalDate date)
    Formats the passed string as ISO 8601 date. Example: "2018-02-12"
    Parameters:
      `date` - the dateTime to format, never `null`
    Returns:
      the formatted date, never `null`

  - ### formatDateRange

    public static String formatDateRange(ZonedDateTime beginDateTime, ZonedDateTime endDateTime)
    Formats the passed string as a period using a start and end time. Example: "2018-02-12T00:00:00Z/2018-03-18T12:31:12Z"
    Parameters:
      `beginDateTime` - the begin dateTime to format, never `null`
      `endDateTime` - the end dateTime to format, never `null`
    Returns:
      the formatted date, never `null`

  - ### formatDateRangeWithDuration

    public static String formatDateRangeWithDuration(LocalDate beginDate, LocalDate endDate)
    Formats the passed string as a period using start time and a duration. Example: "2018-02-12T00:00:00Z/P1M6DT12H31M12S"
    Parameters:
      `beginDate` - the begin date to format, never `null`
      `endDate` - the end date to format, never `null`
    Returns:
      the formatted date, never `null`

  - ### parseSpatialExtent

    public static BBox parseSpatialExtent(Map<String,Object> collection)
    Parses the spatial extent from the passed collection.
    Parameters:
      `collection` - the collection containing the extent to parse, never `null`
    Returns:
      the parsed bbox, `null` if no extent exists
    Throws:
      `IllegalArgumentException` - if the number of items in the extent invalid

  - ### findLinksWithSupportedMediaTypeByRel

    public static List<Map<String,Object>> findLinksWithSupportedMediaTypeByRel(List<Map<String,Object>> links, List<String> mediaTypesToSupport, String expectedRel)
    Parses all links with 'type' of one of the passed mediaTypes and the 'rel' property with the passed value.
    Parameters:
      `links` - list of all links, never `null`
      `mediaTypesToSupport` - a list of media types the links searched for should support, may be empty but never `null`
      `expectedRel` - the expected value of the property 'rel', never `null`
    Returns:
      a list of links supporting one of the media types and with the expected 'rel' property, may be empty but never `null`

  - ### findUnsupportedTypes

    public static List<String> findUnsupportedTypes(List<Map<String,Object>> links, List<String> mediaTypesToSuppport)
    Parsing the media types which does not have a link woth property 'type' for.
    Parameters:
      `links` - list of links to search in, never `null`
      `mediaTypesToSuppport` - a list of media types which should be supported, never `null`
    Returns:
      the media types which does not have a link for.

  - ### findLinksWithoutRelOrType

    public static List<String> findLinksWithoutRelOrType(List<Map<String,Object>> links, Set<String> rels)
    Parses the links without 'rel' or 'type' property.
    Parameters:
      `links` - list of links to search in, never `null`
      `rels` - Set of relation types, never `null`
    Returns:
      the links without 'rel' or 'type' property

  - ### findLinkByRel

    public static Map<String,Object> findLinkByRel(List<Map<String,Object>> links, String expectedRel)
    Parses the link with 'rel=self'.
    Parameters:
      `links` - list of links to search in, never `null`
      `expectedRel` - the expected value of the property 'rel', never `null`
    Returns:
      the link to itself or `null` if no such link exists

  - ### linkIncludesRelAndType

    public static boolean linkIncludesRelAndType(Map<String,Object> link)
    Checks if the passed link contains 'rel' and 'type' properties.
    Parameters:
      `link` - to check, never `null`
    Returns:
      `true` if the link contains 'rel' and 'type' properties, `false` otherwise

  - ### hasProperty

    public static boolean hasProperty(String propertyName, io.restassured.path.json.JsonPath jsonPath)
    Checks if a property with the passed name exists in the jsonPath.
    Parameters:
      `propertyName` - name of the property to check, never `null`
      `jsonPath` - to check, never `null`
    Returns:
      `true` if the property exists, `false` otherwise

  - ### hasAtLeastOneSpatialFeatureCollection

    public static boolean hasAtLeastOneSpatialFeatureCollection(io.restassured.path.json.JsonPath jsonPath)
    Checks if a at least one of the collection in the /collections response has a spatial extent.
    Parameters:
      `jsonPath` - to check, never `null`
    Returns:
      `true` at least one of the collection has a spatial extent, `false` otherwise

  - ### hasAtLeastOneSpatialFeatureCollection

    public static boolean hasAtLeastOneSpatialFeatureCollection(Map<String,Object> collection)
    Checks if a at least one of the collection in the /collections response has a spatial extent.
    Parameters:
      `collection` - to check, never `null`
    Returns:
      `true` at least one of the collection has a spatial extent, `false` otherwise

  - ### hasAtLeastOneSpatialFeatureCollection

    public static boolean hasAtLeastOneSpatialFeatureCollection(Object extent)
    Checks if the extent contains a spatial extent.
    Parameters:
      `extent` - to check, never `null`
    Returns:
      `true` if extent contains a spatial extent, `false` otherwise

  - ### parseAsList

    public static List<String> parseAsList(String propertyName, io.restassured.path.json.JsonPath jsonPath)
    Retrieves the property values as list.
    Parameters:
      `propertyName` - name of the property, never `null`
      `jsonPath` - the json document to retrieve properties from, never `null`
    Returns:
      the property values as list, may be empty but never `null`

  - ### parseAsListOfMaps

    public static List<Map<String,Object>> parseAsListOfMaps(String propertyName, io.restassured.path.json.JsonPath jsonPath)
    Retrieves the property values as list.
    Parameters:
      `propertyName` - name of the property, never `null`
      `jsonPath` - the json document to retrieve properties from, never `null`
    Returns:
      the property values as list, may be empty but never `null`

  - ### parseAsList

    public static List<String> parseAsList(String propertyName, Map<String,Object> json)
    Retrieves the property values as list.
    Parameters:
      `propertyName` - name of the property, never `null`
      `json` - the json map to retrieve properties from, never `null`
    Returns:
      the property values as list, may be empty but never `null`

  - ### collectNumberOfAllReturnedFeatures

    public static int collectNumberOfAllReturnedFeatures(io.restassured.path.json.JsonPath jsonPath, int maximumLimit) throws URISyntaxException
    Collects the number of all returned features by iterating over all 'next' links and summarizing the size of features in 'features' array property.
    Parameters:
      `jsonPath` - the initial collection, never `null`
      `maximumLimit` - the limit parameter value to use, if <= 0 the parameter is omitted
    Returns:
      the number of all returned features
    Throws:
      `URISyntaxException` - if the creation of a uri fails

  - ### findFeaturesUrlForGeoJson

    public static String findFeaturesUrlForGeoJson(URI rootUri, io.restassured.path.json.JsonPath collection)
    Finds the URL to the resource /collections/{collectionId}/items from the path /collections/{collectionId}
    Parameters:
      `rootUri` - never `null`
      `collection` - the /collections/{collectionId} response, never `null`
    Returns:
      the url to the resource /collections/{collectionId}/items or `null`

  - ### findFeaturesUrlForGeoJson

    public static String findFeaturesUrlForGeoJson(URI rootUri, Map<String,Object> collection)
    Finds the URL to the resource /collections/{collectionId}/items from the path /collections
    Parameters:
      `rootUri` - never `null`
      `collection` - the collection object /collections response, never `null`
    Returns:
      the url to the resource /collections/{collectionId}/items or `null`

  - ### findFeatureUrlForGeoJson

    public static String findFeatureUrlForGeoJson(URI rootUri, io.restassured.path.json.JsonPath collection, String featureId)
    Finds the URL to the resource /collections/{collectionId}/items/{featureId} from the path /collections and creates an valid url to this resource
    Parameters:
      `rootUri` - never `null`
      `collection` - the /collections/{collectionId} response, never `null`
      `featureId` - id of the feature, never `null`
    Returns:
      the url to the resource /collections/{collectionId}/items or `null`

  - ### findFeatureUrlForGeoJson

    public static String findFeatureUrlForGeoJson(URI rootUri, Map<String,Object> collection, String featureId)
    Finds the URL to the resource /collections/{collectionId}/items/{featureId} from the path /collections and creates an valid url to this resource
    Parameters:
      `rootUri` - never `null`
      `collection` - the collection object /collections response, never `null`
      `featureId` - id of the feature, never `null`
    Returns:
      the url to the resource /collections/{collectionId}/items or `null`

  - ### parseFeatureGeometry

    public static org.locationtech.jts.geom.Geometry parseFeatureGeometry(Map<String,Object> feature, CoordinateSystem crs) throws org.locationtech.jts.io.ParseException
    Parse the geometry property as geometry.
    Parameters:
      `feature` - to parse, never `null`
      `crs` - the crs of the geometry, may be `null`
    Returns:
      the parsed geometry, `null` if the feature has no geometry property
    Throws:
      `org.locationtech.jts.io.ParseException` - if the geometry could not be parsed