1 package ch
.cyberduck
.core
;
4 * Copyright (c) 2002-2013 David Kocher. All rights reserved.
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * Bug fixes, suggestions and comments should be sent to feedback@cyberduck.ch
20 import ch
.cyberduck
.core
.idna
.PunycodeConverter
;
22 import org
.apache
.commons
.lang3
.StringUtils
;
27 public class HostUrlProvider
{
29 private boolean username
;
33 public HostUrlProvider() {
37 public HostUrlProvider(final boolean username
) {
38 this(username
, false);
41 public HostUrlProvider(final boolean username
, final boolean path
) {
42 this.username
= username
;
49 public String
get(final Host host
) {
50 final String base
= String
.format("%s://%s%s%s",
51 host
.getProtocol().getScheme().toString(),
52 username
&& StringUtils
.isNotEmpty(host
.getCredentials().getUsername()) ? String
.format("%s@", host
.getCredentials().getUsername()) : "",
53 new PunycodeConverter().convert(host
.getHostname()),
54 host
.getPort() != host
.getProtocol().getScheme().getPort() ? String
.format(":%d", host
.getPort()) : "");
56 if(StringUtils
.isNotBlank(host
.getDefaultPath())) {
57 return String
.format("%s%s", base
, PathNormalizer
.normalize(host
.getDefaultPath()));