Package org.apache.sshd.scp.common
Class ScpLocation
- java.lang.Object
-
- org.apache.sshd.scp.common.ScpLocation
-
- All Implemented Interfaces:
Serializable
,Cloneable
,MutableUserHolder
,UsernameHolder
public class ScpLocation extends Object implements MutableUserHolder, Serializable, Cloneable
Represents a local or remote SCP location in the format "user@host:path" or "scp://[user@]host[:port][/path]" for a remote path and a simple path for a local one. If user is omitted for a remote path then current user is used.- Author:
- Apache MINA SSHD Project
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static char
HOST_PART_SEPARATOR
static String
SCHEME
static char
USERNAME_PART_SEPARATOR
-
Constructor Summary
Constructors Constructor Description ScpLocation()
ScpLocation(String locSpec)
ScpLocation(String username, String host, int port, String path)
ScpLocation(String username, String host, String path)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ScpLocation
clone()
boolean
equals(Object obj)
String
getHost()
String
getPath()
int
getPort()
String
getUsername()
int
hashCode()
boolean
isLocal()
static ScpLocation
parse(String locSpec)
Parses a local or remote SCP location in the format "user@host:path" or "scp://[user@]host[:port][/path]"int
resolvePort()
String
resolveUsername()
Resolves the effective username to use for a remote location.void
setHost(String host)
void
setPath(String path)
void
setPort(int port)
void
setUsername(String username)
String
toString()
static <L extends ScpLocation>
Lupdate(String spec, L location)
Parses a local or remote SCP location in the format "user@host:path" or "scp://[user@]host[:port][/path]"
-
-
-
Field Detail
-
SCHEME
public static final String SCHEME
- See Also:
- Constant Field Values
-
HOST_PART_SEPARATOR
public static final char HOST_PART_SEPARATOR
- See Also:
- Constant Field Values
-
USERNAME_PART_SEPARATOR
public static final char USERNAME_PART_SEPARATOR
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ScpLocation
public ScpLocation()
-
ScpLocation
public ScpLocation(String locSpec)
- Parameters:
locSpec
- The location specification - ignored ifnull
/empty- Throws:
IllegalArgumentException
- if invalid specification- See Also:
update(String, ScpLocation)
-
-
Method Detail
-
getHost
public String getHost()
-
setHost
public void setHost(String host)
-
isLocal
public boolean isLocal()
-
getPort
public int getPort()
-
setPort
public void setPort(int port)
-
resolvePort
public int resolvePort()
-
getUsername
public String getUsername()
- Specified by:
getUsername
in interfaceUsernameHolder
- Returns:
- The attached username - may be
null
/empty if holder not yet initialized
-
setUsername
public void setUsername(String username)
- Specified by:
setUsername
in interfaceMutableUserHolder
-
resolveUsername
public String resolveUsername()
Resolves the effective username to use for a remote location. If username not set then uses the current username- Returns:
- The resolved username
- See Also:
getUsername()
,OsUtils.getCurrentUser()
-
getPath
public String getPath()
-
setPath
public void setPath(String path)
-
clone
public ScpLocation clone()
-
parse
public static ScpLocation parse(String locSpec)
Parses a local or remote SCP location in the format "user@host:path" or "scp://[user@]host[:port][/path]"- Parameters:
locSpec
- The location specification - ignored ifnull
/empty- Returns:
- The
ScpLocation
ornull
if no specification provider - Throws:
IllegalArgumentException
- if invalid specification- See Also:
update(String, ScpLocation)
-
update
public static <L extends ScpLocation> L update(String spec, L location)
Parses a local or remote SCP location in the format "user@host:path" or "scp://[user@]host[:port][/path]"- Type Parameters:
L
- Type ofScpLocation
being updated- Parameters:
spec
- The location specification - ignored ifnull
/emptylocation
- TheScpLocation
to update - nevernull
- Returns:
- The updated location (unless no specification)
- Throws:
IllegalArgumentException
- if invalid specification
-
-