code: String generateShortLinkInternal(ServerRequestCreateUrl req) {
          if (!req.constructError_ && !req.handleErrors(context_)) {
              if (linkCache_.containsKey(req.getLinkPost())) {
                  String url = linkCache_.get(req.getLinkPost());
                  req.onUrlAvailable(url);
                  return url;
              } else {
                  if (req.isAsync()) {
                      generateShortLinkAsync(req);
                  } else {
                      return generateShortLinkSync(req);
                  }
              }
          }
          return null;
      }
docs: <p> Generates a shorl url for the given {@link ServerRequestCreateUrl} object </p>
  
  @param req An instance  of {@link ServerRequestCreateUrl} with parameters create the short link.
  @return A url created with the given request if the request is synchronous else null.
  Note : This method can be used only internally. Use {@link BranchUrlBuilder} for creating short urls.