1 package ch
.cyberduck
.core
;
4 * Copyright (c) 2002-2015 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:
18 * feedback@cyberduck.io
21 import ch
.cyberduck
.core
.exception
.BackgroundException
;
23 import org
.apache
.commons
.lang3
.StringUtils
;
28 public class TildePathExpander
{
30 public static final String PREFIX
31 = String
.format("%s%s", Path
.DELIMITER
, Path
.HOME
);
33 private Session session
;
35 public TildePathExpander(final Session session
) {
36 this.session
= session
;
39 public Path
expand(final Path remote
) throws BackgroundException
{
40 return this.expand(remote
, PREFIX
);
43 protected Path
expand(final Path remote
, final String format
) throws BackgroundException
{
44 if(remote
.getAbsolute().startsWith(format
)) {
45 return new Path(StringUtils
.replaceOnce(remote
.getAbsolute(), format
, session
.workdir().getAbsolute()),