java.lang.Object
de.stklcode.pubtrans.ura.UraClient
All Implemented Interfaces:
java.io.Serializable

public class UraClient
extends java.lang.Object
implements java.io.Serializable
Client for URA based public transport API.

This client features builder pattern style query functionality to obtain Trip and Stop information.

Author:
Stefan Kalscheuer
See Also:
Serialized Form
  • Constructor Details

    • UraClient

      public UraClient​(UraClientConfiguration config)
      Constructor from UraClientConfiguration.
      Parameters:
      config - The configuration.
      Since:
      2.0
    • UraClient

      public UraClient​(java.lang.String baseURL)
      Constructor with base URL and default API paths.
      Parameters:
      baseURL - The base URL (with protocol, without trailing slash).
    • UraClient

      public UraClient​(java.lang.String baseURL, java.lang.String instantPath, java.lang.String streamPath)
      Constructor with base URL and custom API paths.
      Parameters:
      baseURL - The base URL (including protocol).
      instantPath - The path for instant requests.
      streamPath - The path for stream requests.
  • Method Details

    • forStops

      public final UraClient.Query forStops​(java.lang.String... stops)
      Builder pattern to request given stop IDs.
      Parameters:
      stops - Stop IDs
      Returns:
      the request
    • forStopsByName

      public final UraClient.Query forStopsByName​(java.lang.String... stopNames)
      Builder pattern to request given stop names.
      Parameters:
      stopNames - Stop Point Names
      Returns:
      the request
    • forLines

      public final UraClient.Query forLines​(java.lang.String... lines)
      Builder pattern to request given line IDs.
      Parameters:
      lines - Line IDs.
      Returns:
      The request.
    • forLinesByName

      public final UraClient.Query forLinesByName​(java.lang.String... lineNames)
      Builder pattern to request given line names.
      Parameters:
      lineNames - Line names.
      Returns:
      The request.
    • forDirection

      public final UraClient.Query forDirection​(java.lang.Integer direction)
      Builder pattern to request given direction.
      Parameters:
      direction - The direction ID.
      Returns:
      The request.
    • forDestinationNames

      public final UraClient.Query forDestinationNames​(java.lang.String... destinationNames)
      Builder pattern to request given destination names.
      Parameters:
      destinationNames - Destination names.
      Returns:
      The request.
      Since:
      1.1.0
    • towards

      public final UraClient.Query towards​(java.lang.String... towards)
      Builder pattern to request given direction defined by stop point name.
      Parameters:
      towards - Towards stop point names.
      Returns:
      The request.
      Since:
      1.1.0
    • forPosition

      public final UraClient.Query forPosition​(java.lang.Double latitude, java.lang.Double longitude, java.lang.Integer radius)
      Builder pattern to request given destination names.
      Parameters:
      latitude - Latitude (WGS84).
      longitude - Longitude (WGS84).
      radius - Search radius (meters).
      Returns:
      The request.
      Since:
      1.1.0
    • getTrips

      public java.util.List<Trip> getTrips() throws UraClientException
      Get list of trips. If forStops() and/or forLines() has been called, those will be used as filter.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getTrips

      public java.util.List<Trip> getTrips​(java.lang.Integer limit) throws UraClientException
      Get list of trips with limit. If forStops() and/or forLines() has been called, those will be used as filter.
      Parameters:
      limit - Maximum number of results.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getTrips

      public java.util.List<Trip> getTrips​(UraClient.Query query) throws UraClientException
      Get list of trips. If forStops() and/or forLines() has been called, those will be used as filter.
      Parameters:
      query - The query.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getTrips

      public java.util.List<Trip> getTrips​(UraClient.Query query, java.lang.Integer limit) throws UraClientException
      Get list of trips for given stopIDs and lineIDs with result limit.
      Parameters:
      query - The query.
      limit - Maximum number of results.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getTripsStream

      public AsyncUraTripReader getTripsStream​(UraClient.Query query, java.util.function.Consumer<Trip> consumer) throws UraClientConfigurationException
      Get trips for given stopIDs and lineIDs using stream API and pass each result to given consumer.
      Parameters:
      query - The query.
      consumer - Consumer(s) for single trips.
      Returns:
      Trip reader.
      Throws:
      UraClientConfigurationException - Error reading response.
      Since:
      1.2
      See Also:
      getTripsStream(Query, List)
    • getTripsStream

      public AsyncUraTripReader getTripsStream​(UraClient.Query query, java.util.List<java.util.function.Consumer<Trip>> consumers) throws UraClientConfigurationException
      Get trips for given stopIDs and lineIDs using stream API and pass each result to given consumers.
      Parameters:
      query - The query.
      consumers - Consumer(s) for single trips.
      Returns:
      Trip reader.
      Throws:
      UraClientConfigurationException - Error retrieving stream response.
      Since:
      1.2, 2.0 Throws UraClientConfigurationException.
    • getStops

      public java.util.List<Stop> getStops() throws UraClientException
      Get list of stops without filters.
      Returns:
      The list of stops.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getStops

      public java.util.List<Stop> getStops​(UraClient.Query query) throws UraClientException
      List available stopIDs. If forStops() and/or forLines() has been called, those will be used as filter.
      Parameters:
      query - The query.
      Returns:
      The list.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.0, 2.0 Throws UraClientException.
    • getMessages

      public java.util.List<Message> getMessages() throws UraClientException
      Get list of messages.
      Returns:
      List of messages.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.3, 2.0 Throw UraClientException.
    • getMessages

      public java.util.List<Message> getMessages​(UraClient.Query query) throws UraClientException
      Get list of messages. If forStops() has been called, those will be used as filter.
      Parameters:
      query - The query.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.3, 2.0 Throw UraClientException.
    • getMessages

      public java.util.List<Message> getMessages​(UraClient.Query query, java.lang.Integer limit) throws UraClientException
      Get list of messages for given stopIDs with result limit.
      Parameters:
      query - The query.
      limit - Maximum number of results.
      Returns:
      List of trips.
      Throws:
      UraClientException - Error with API communication.
      Since:
      1.3, 2.0 Throw UraClientException.