code: public PagedList<ApplicationSummary> list(final ApplicationListOptions applicationListOptions) {
          ServiceResponseWithHeaders<Page<ApplicationSummary>, ApplicationListHeaders> response = listSinglePageAsync(applicationListOptions).toBlocking().single();
          return new PagedList<ApplicationSummary>(response.body()) {
              @Override
              public Page<ApplicationSummary> nextPage(String nextPageLink) {
                  ApplicationListNextOptions applicationListNextOptions = null;
                  if (applicationListOptions != null) {
                      applicationListNextOptions = new ApplicationListNextOptions();
                      applicationListNextOptions.withClientRequestId(applicationListOptions.clientRequestId());
                      applicationListNextOptions.withReturnClientRequestId(applicationListOptions.returnClientRequestId());
                      applicationListNextOptions.withOcpDate(applicationListOptions.ocpDate());
                  }
                  return listNextSinglePageAsync(nextPageLink, applicationListNextOptions).toBlocking().single().body();
              }
          };
      }
docs: Lists all of the applications available in the specified account.
  This operation returns only applications and versions that are available for use on compute nodes; that is, that can be used in an application package reference. For administrator information about applications and versions that are not yet available to compute nodes, use the Azure portal or the Azure Resource Manager API.
  
  @param applicationListOptions Additional parameters for the operation
  @throws IllegalArgumentException thrown if parameters fail the validation
  @throws BatchErrorException thrown if the request is rejected by server
  @throws RuntimeException all other wrapped checked exceptions if the request fails to be sent
  @return the PagedList&lt;ApplicationSummary&gt; object if successful.