Merge pull request #64 in ITERATE/cyberduck from feature/windows/9074 to master
[cyberduck.git] / source / ch / cyberduck / core / TildePathExpander.java
blobbe3b1d4ce76112cb3bab3d3af629324c3aa1ba73
1 package ch.cyberduck.core;
3 /*
4 * Copyright (c) 2002-2015 David Kocher. All rights reserved.
5 * http://cyberduck.io/
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;
25 /**
26 * @version $Id$
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()),
46 remote.getType());
48 return remote;