@Override public IOException getCause() { // guaranteed to be an IOException return (IOException) super.getCause(); } }
@Override public DescriptiveUrlBag toUrl(final Path file) { final DescriptiveUrlBag list = new DescriptiveUrlBag(); if(file.isFile()) { try { // This link will expire in four hours and afterwards you will get 410 Gone. final String link = new DbxUserFilesRequests(session.getClient()).getTemporaryLink(file.getAbsolute()).getLink(); // Determine expiry time for URL final Calendar expiry = Calendar.getInstance(TimeZone.getTimeZone("UTC")); expiry.add(Calendar.HOUR, 4); list.add(new DescriptiveUrl(URI.create(link), DescriptiveUrl.Type.http, MessageFormat.format(LocaleFactory.localizedString("{0} URL"), LocaleFactory.localizedString("Temporary", "S3")) + " (" + MessageFormat.format(LocaleFactory.localizedString("Expires {0}", "S3") + ")", UserDateFormatterFactory.get().getMediumFormat(expiry.getTimeInMillis())) )); } catch(DbxException e) { log.warn(String.format("Failure retrieving shared link. %s", e.getMessage())); } } return list; } }
@Override public BackgroundException map(final DbxException failure) { final StringBuilder buffer = new StringBuilder(); this.parse(buffer, failure.getMessage()); if(failure instanceof InvalidAccessTokenException) { return new LoginFailureException(buffer.toString(), failure);