Class JsonUtils

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

public class JsonUtils extends Object

JsonUtils class.

Author:
Lyn Goltz
  • Method Details

    • 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 - rels 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
    • 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
    • inputStreamToString

      public static String inputStreamToString(InputStream inputStream) throws IOException
      Converts an inputstream to String using UTF-8 encoding.
      Parameters:
      inputStream - the inputstream
      Returns:
      the content of the inputstream as String
      Throws:
      IOException - if an I/O error occurs
    • prettifyString

      public static String prettifyString(String string)

      prettifyString.

      Parameters:
      string - a String object
      Returns:
      a String object